Walker - Texas ranger | |
Walker je reprezentace "chodícího" objektu po mapě. Obsahuje: | |
typedef struct _Walker { // attributes int State; // walker's state flags int Speed; // walker's speed int Priority; // walker's priority // position Position Pos; // actual position Position Dest; // destination position // planned path - valid when state flag PEW_STANDING isn't set PathStep* Path; // planned path steps int Step; // actual step int Length; // steps in path // linked list struct _Walker* Next; // next walker in linked list struct _Walker* Prev; // prev walker in linked list // user game data void* GD; // back reference to the game walker's information } Walker; |
|
State může být kombinací těchto vlajek: PEW_FREE - struktura není využívána PEW_USED - Walker je aktivní PEW_SELECTED - Walker je označený PEW_STANDING - Walker stojí PEW_BLOCKED - Walker je blokován |
|
Speed určuje za kolik herních tiků udělá Walker jeden krok přes políčko s TC==0. | |
Priority určuje prioritu Walkera. Využíváno při dávání přednosti u srážek. | |
Pos a Dest jsou aktuální a cílová pozice. | |
Path drží naplánovanou cestu (spojový seznam PathStep), délka cesty Length a aktuální krok cesty v Step. | |
Aktivní Walkeři (PEW_USED) jsou provázání do spojového seznamu (Next, Prev) | |
GD slouží jako odkaz na další uživatelská data o Walkerovi. |