Goal oriented gameplay (was: generators, triggers and aiming)

Ulf Ekström uekstrom at gmail.com
Mon Jan 10 16:42:39 EST 2005


Hi,

> Here's the new TODO list with updated generator, trigger and aim syntax.

[snip]

> * Make everything in Airstrike an object: ai, trigger, generator etc.

I am working on this now. I suggest we do not implement generators etc
until this
work is done (maybe tonight).

> * Add types to objects:
>   - Member for the object type
>   - Parent link that points to parent object type
>   - Helper function that traverses the type tree to root and checks
>     whether object or it's parent type had requested type


I have checked in my solution to this to src/core/object.[ch]. It's
not used anywhere
yet though. I solved the typechecking with the function

void *obj_ref(void *object, object_type_t *assumed_type);

which must be used to take a reference to an object. This function may check if
the object is of the assumed type (or inherits from that type).

> * Note: Sprite capabilities and attribute checks are handled with
>   messages (e.g. MSG_IS_WALKING). This is needed by triggers

We could also use the (currently underused)  enum sprite_flags field
of each sprite. Currently it has only one bit used.

src/engine/sprite.h

enum sprite_flags
  {
    SPRITE_PAUSED = 1, /* animation is paused, movement is still allowed */
  };

 
> * Add to object type struct counters for how many objects (sprites) of the
>   given type have been created and killed (live = created - killed).
>   - Modify these counters when objects are created/killed

This will be automatic with the new object system.

>   - Add clearing of these stats to and call that on level load or unload.

This we will have to implement, although it should be really simple to
do in objects.c.

[snipped a lot of items]

> 
> I think this will be fairly straightforward to do with the new object
> system, but it will require quite a lot of work...

yeah, you are right.  But it's doable. 

Ulf



More information about the airstrike mailing list