diff options
Diffstat (limited to 'sword2/object.h')
-rw-r--r-- | sword2/object.h | 153 |
1 files changed, 77 insertions, 76 deletions
diff --git a/sword2/object.h b/sword2/object.h index b5e5763c77..c158a22075 100644 --- a/sword2/object.h +++ b/sword2/object.h @@ -23,102 +23,103 @@ #include "driver/driver96.h" // these structures represent the broken up compact components -// these here declared to the system must be the same as those declared to LINC (or it wont work) - - -// mouse structure - defines mouse detection area, detection priority & 'type' flag -typedef struct -{ - int32 x1; // top-left of mouse area is (x1,y1) - int32 y1; - int32 x2; // bottom-right of area is (x2,y2) (these coords are inclusive) - int32 y2; - int32 priority; - int32 pointer; // type (or resource id?) of pointer used over this area -} Object_mouse; +// these here declared to the system must be the same as those declared to +// LINC (or it wont work) + +// mouse structure - defines mouse detection area, detection priority & +// 'type' flag +typedef struct { + int32 x1; // Top-left and bottom-right of mouse + int32 y1; // area. (These coords are inclusive.) + int32 x2; + int32 y2; + int32 priority; + int32 pointer; // type (or resource id?) of pointer used over this area + +} Object_mouse; // logic structure - contains fields used in logic script processing -typedef struct -{ - int32 looping; // 0 when first calling FN_<function>; 1 when calling subsequent times in same loop - int32 pause; // pause count, used by FN_pause() + +typedef struct { + int32 looping; // 0 when first calling FN_<function>; + // 1 when calling subsequent times in same loop + int32 pause; // pause count, used by FN_pause() } Object_logic; -//------------------------------------------------ // status bits for 'type' field of Object_graphic) + // in low word: -#define NO_SPRITE 0x00000000 // don't print -#define BGP0_SPRITE 0x00000001 // fixed to background parallax[0] -#define BGP1_SPRITE 0x00000002 // fixed to background parallax[1] -#define BACK_SPRITE 0x00000004 // 'background' sprite, fixed to main background -#define SORT_SPRITE 0x00000008 // 'sorted' sprite, fixed to main background -#define FORE_SPRITE 0x00000010 // 'foreground' sprite, fixed to main background -#define FGP0_SPRITE 0x00000020 // fixed to foreground parallax[0] -#define FGP1_SPRITE 0x00000040 // fixed to foreground parallax[0] + +#define NO_SPRITE 0x00000000 // don't print +#define BGP0_SPRITE 0x00000001 // fixed to background parallax[0] +#define BGP1_SPRITE 0x00000002 // fixed to background parallax[1] +#define BACK_SPRITE 0x00000004 // 'background' sprite, fixed to main background +#define SORT_SPRITE 0x00000008 // 'sorted' sprite, fixed to main background +#define FORE_SPRITE 0x00000010 // 'foreground' sprite, fixed to main background +#define FGP0_SPRITE 0x00000020 // fixed to foreground parallax[0] +#define FGP1_SPRITE 0x00000040 // fixed to foreground parallax[0] // in high word: + #define UNSHADED_SPRITE 0x00000000 // not to be shaded #define SHADED_SPRITE 0x00010000 // to be shaded, based on shading mask -//------------------------------------------------ // graphic structure - contains fields appropriate to sprite output -typedef struct -{ - int32 type; // see above - int32 anim_resource; // resource id of animation file - int32 anim_pc; // current frame number of animation -} Object_graphic; +typedef struct { + int32 type; // see above + int32 anim_resource; // resource id of animation file + int32 anim_pc; // current frame number of animation +} Object_graphic; // speech structure - contains fields used by speech scripts & text output -typedef struct -{ - int32 pen; // colour to use for body of characters - int32 width; // max width of text sprite - int32 command; // speech script command id - int32 ins1; // speech script instruction parameters (may need more now?) - int32 ins2; - int32 ins3; - int32 ins4; - int32 ins5; - int32 wait_state; //0 not waiting 1 waiting for next speech command -} Object_speech; +typedef struct { + int32 pen; // colour to use for body of characters + int32 width; // max width of text sprite + int32 command; // speech script command id + int32 ins1; // speech script instruction parameters (may need more now?) + int32 ins2; + int32 ins3; + int32 ins4; + int32 ins5; + int32 wait_state; // 0 not waiting, 1 waiting for next speech command +} Object_speech; -// mega structure - contains fields used for mega-character & mega-set processing -typedef struct -{ - int32 NOT_USED_1; // only free roaming megas need to check this before registering their graphics for drawing - int32 NOT_USED_2; // id of floor on which we are standing - int32 NOT_USED_3; // id of object which we are getting to - int32 NOT_USED_4; // pixel distance to stand from player character when in conversation - int32 currently_walking; // number given us by the auto router - int32 walk_pc; // current frame number of walk-anim - int32 scale_a; // current scale factors, taken from floor data - int32 scale_b; - int32 feet_x; // mega feet coords - frame-offsets are added to these position mega frames - int32 feet_y; - int32 current_dir; // current dirction faced by mega; used by autorouter to determine turns required - int32 colliding; // means were currently avoiding a collision (see FN_walk) - int32 megaset_res; // resource id of mega-set file - int32 NOT_USED_5; // NOT USED +// mega structure - contains fields used for mega-character & mega-set +// processing + +typedef struct { + int32 NOT_USED_1; // only free roaming megas need to check this before registering their graphics for drawing + int32 NOT_USED_2; // id of floor on which we are standing + int32 NOT_USED_3; // id of object which we are getting to + int32 NOT_USED_4; // pixel distance to stand from player character when in conversation + int32 currently_walking; // number given us by the auto router + int32 walk_pc; // current frame number of walk-anim + int32 scale_a; // current scale factors, taken from floor data + int32 scale_b; + int32 feet_x; // mega feet coords - frame-offsets are added to these position mega frames + int32 feet_y; + int32 current_dir; // current dirction faced by mega; used by autorouter to determine turns required + int32 NOT_USED_5; // means were currently avoiding a collision (see FN_walk) + int32 megaset_res; // resource id of mega-set file + int32 NOT_USED_6; // NOT USED } Object_mega; - -// walk-data structure - contains details of layout of frames in the mega-set, and how they are to be used -typedef struct -{ - int32 nWalkFrames; // no. of frames per walk-cycle - int32 usingStandingTurnFrames; // 0=no 1=yes - int32 usingWalkingTurnFrames; // 0=no 1=yes - int32 usingSlowInFrames; // 0=no 1=yes - int32 usingSlowOutFrames; // 0=no !0=number of slow-out frames in each direction - int32 nSlowInFrames[8]; // no. of slow-in frames in each direction - int32 leadingLeg[8]; // leading leg for walk in each direction (0=left 1=right) - int32 dx[8*(12+1)]; // walk step distances in x direction - int32 dy[8*(12+1)]; // walk step distances in y direction +// walk-data structure - contains details of layout of frames in the +// mega-set, and how they are to be used + +typedef struct { + int32 nWalkFrames; // no. of frames per walk-cycle + int32 usingStandingTurnFrames; // 0 = no 1 = yes + int32 usingWalkingTurnFrames; // 0 = no 1 = yes + int32 usingSlowInFrames; // 0 = no 1 = yes + int32 usingSlowOutFrames; // 0 = no !0 = number of slow-out frames in each direction + int32 nSlowInFrames[8]; // no. of slow-in frames in each direction + int32 leadingLeg[8]; // leading leg for walk in each direction (0 = left 1 = right) + int32 dx[8 * (12 + 1)]; // walk step distances in x direction + int32 dy[8 * (12 + 1)]; // walk step distances in y direction } Object_walkdata; - #endif |