sm64/include/yvars.h

338 lines
12 KiB
C

#define DEBUG_STAGE 2
/********************************************************************************
* *
* --------------------------- *
* Ultra64 TestProgram *
* --------------------------- *
* File : yajima.h *
* Description : program switch & parameter *
* Date : 1994.4.5 *
* Author : H.yajima *
* *
*********************************************************************************/
/********************************************************************************
-------------
buffer size
-------------
*********************************************************************************/
#define BGCHECK_LISTMAX 7000 /* BGcheck LIST SIZE */
#define BGCHECK_DATAMAX 2300 /* BGcheck DATA SIZE */
#define SIZE_STRATHEAP 4*512 /* Strategy Used Work */
#define NUM_STRATEGY 240 /* strategy max count */
#define size_hit_counter 4 /* hitlist pointer */
#define size_path_work 80 /* strategy main work */
#define size_path_stack 8 /* path stack size */
/********************************************************************************
--------------------------
Strategy Common Parameter
--------------------------
*********************************************************************************/
#define MAX_speedY -78.0f /* object speed Y parameter */
#define OBJ_MAXSPEED_Y MAX_speedY
#define DEFAULT_ENEMY_HP 0x800;
#define DEFAULT_ENEMY_AP 0x100;
/********************************************************************************
-------------
Map System
-------------
*********************************************************************************/
#define null_height -11000
#define roofnull_height 20000
#define map_overflow 0xe000
#define map_area_size 0x400
#define map_area_mask map_area_size-1
#define map_area_total 16
#define map_world_size map_area_size*map_area_total
#define map_world_offset map_world_size/2
#define MAP_AREA_SIZE 1024
#define MAP_HALF_SIZE MAP_AREA_SIZE*8
#define MAP_FULL_SIZE MAP_AREA_SIZE*16
#define MAP_LIMIT_MAX MAP_AREA_SIZE*8
#define MAP_LIMIT_MIN -(MAP_AREA_SIZE*8)+1
/********************************************************************************
----------------
BGCheck Define
----------------
*********************************************************************************/
#define BGCHECK_OVERLAPSIZE 50 /* BGcheck AREA overlap size */
#define BGCHECKFLAG_STATIC 0 /* static BG check */
#define BGCHECKFLAG_DYNAMIC 1 /* move BG check */
#define BGCHECKCODE_MAX 64 /* bgcheck code max */
#define BGCHECKCODE_POLYGON BGCHECKCODE_NORMAL
#define BGNUKI_CODE 18 /* BGcheck areachange code */
#define OBJSETCODE_TRIPDOOR 100 /* tripdoor special code */
#define CK_GROUND 0
#define CK_ROOF 1
#define TAGCODE_END 30
#define WATERLINE_MAX 20
/********************************************************************************
-----------------
Strategy Define
-----------------
*********************************************************************************/
#define obj_actor_high (( (execstp->s[stw_actorcode].d ) >> 24 ) &0xff )
#define enemydemo_flag (execstp->s[stw_enemyflag].word[0])
#define enemydemo_mode (execstp->s[stw_enemyflag].word[1])
#define obj_bgpointer (execstp->s[stw_bgpointer].pointer)
#define obj_bgcode (execstp->s[stw_bgparam].word[0])
#define obj_bgarea (execstp->s[stw_bgparam].word[1])
#define obj_havecoin (execstp->s[stw_havecoin].d)
#define obj_areamap (execstp->s[stw_areamap_info].d)
#define obj_imm (execstp->s[stw_imm].d)
#define obj_mainflag (execstp->s[stw_flag].d)
#define obj_enemyflag (execstp->s[stw_enemyflag].d)
#define obj_my_status (execstp->s[stw_my_status].d)
#define obj_hit_status (execstp->s[stw_hit_status].d)
#define obj_hit_timer (execstp->s[stw_hit_timer].d)
#define obj_worldX (execstp->s[stw_worldX].f)
#define obj_worldY (execstp->s[stw_worldY].f)
#define obj_worldZ (execstp->s[stw_worldZ].f)
#define obj_speedX (execstp->s[stw_speedX].f)
#define obj_speedY (execstp->s[stw_speedY].f)
#define obj_speedZ (execstp->s[stw_speedZ].f)
#define obj_speedF (execstp->s[stw_speedF].f)
#define obj_speedL (execstp->s[stw_speedL].f)
#define obj_speedU (execstp->s[stw_speedU].f)
#define obj_angleX (execstp->s[stw_angleX].d)
#define obj_angleY (execstp->s[stw_angleY].d)
#define obj_angleZ (execstp->s[stw_angleZ].d)
#define obj_animeangleX (execstp->s[stw_animeangleX].d)
#define obj_animeangleY (execstp->s[stw_animeangleY].d)
#define obj_animeangleZ (execstp->s[stw_animeangleZ].d)
#define obj_animepositionY (execstp->s[stw_animepositionY].f)
#define obj_effect (execstp->s[stw_effect].d)
#define obj_gravity (execstp->s[stw_gravity].f)
#define obj_groundY (execstp->s[stw_groundY].f)
#define obj_movestatus (execstp->s[stw_movestatus].d)
#define obj_animecounter (execstp->s[stw_animecounter].d)
#define obj_anglespeedX (execstp->s[stw_anglespeedX].d)
#define obj_anglespeedY (execstp->s[stw_anglespeedY].d)
#define obj_anglespeedZ (execstp->s[stw_anglespeedZ].d)
#define obj_skelanime_ptr (execstp->s[stw_skelanime].pointer)
#define obj_actionmode (execstp->s[stw_actionmode].d)
#define obj_wall_offsetR (execstp->s[stw_wall_offsetR].f)
#define obj_air_fric (execstp->s[stw_air_fric].f)
#define obj_objname (execstp->s[stw_objname].d)
#define obj_mail (execstp->s[stw_mail].d)
#define obj_skeletonX (execstp->s[stw_skeletonX].f)
#define obj_skeletonY (execstp->s[stw_skeletonY].f)
#define obj_skeletonZ (execstp->s[stw_skeletonZ].f)
#define obj_programselect (execstp->s[stw_programselect].d)
#define obj_breakflag (execstp->s[stw_breakflag].d)
#define obj_mode (execstp->s[stw_mode].d)
#define obj_process (execstp->s[stw_process].d)
#define obj_timer (execstp->s[stw_timer].d)
#define obj_bound_e (execstp->s[stw_bound_e].f)
#define obj_playerdist (execstp->s[stw_playerdist].f)
#define obj_targetangle (execstp->s[stw_targetangle].d)
#define obj_attX (execstp->s[stw_worldX_attention].f)
#define obj_attY (execstp->s[stw_worldY_attention].f)
#define obj_attZ (execstp->s[stw_worldZ_attention].f)
#define obj_friction (execstp->s[stw_friction].f)
#define obj_specficG (execstp->s[stw_specficG].f)
#define obj_skelanimeNo (execstp->s[stw_skelanimeNo].d)
#define obj_alpha (execstp->s[stw_alpha].d)
#define obj_ap (execstp->s[stw_ap].d)
#define obj_hp (execstp->s[stw_hp].d)
#define obj_hmsselectNo (execstp->s[stw_animecounter].d)
#define obj_oldmode (execstp->s[stw_oldmode].d)
#define obj_enemytype (execstp->s[stw_enemytype].d)
#define obj_work0 (execstp->s[stw_work0].d)
#define obj_work1 (execstp->s[stw_work1].d)
#define obj_work2 (execstp->s[stw_work2].d)
#define obj_speed (execstp->s[stw_speedF].f)
#define s_clear_status(data) ( execstp->s[stw_obj_status].d ) &= ((data)^0xffffffff)
#define s_set_objname(data) ( execstp->s[stw_objname].d ) = (OBJNAME_##data)
#define obj_wallangleY (execstp->s[stw_wallangleY].d)
#define obj_returndist (execstp->s[stw_returndist].f)
#define obj_returnangle (execstp->s[stw_returnangle].d)
#define obj_erasedist (execstp->s[stw_erasedist].f)
#define obj_enemyinfo (execstp->s[stw_enemyinfo].d)
#define obj_shapeLOD (execstp->s[stw_shapeLOD].f)
#define obj_movebg_checkdist (execstp->s[stw_movebg_checkdist].f)
#define obj_soundparam (execstp->s[stw_soundparam].d)
#define player_worldX ( player1stp->s[stw_worldX].f)
#define player_worldY ( player1stp->s[stw_worldY].f)
#define player_worldZ ( player1stp->s[stw_worldZ].f)
/*------------------------------------------------------------------------------
road move works
------------------------------------------------------------------------------*/
#define road_root(p) (p->s[stw_work2].pointer)
#define road_pointer(p) (p->s[stw_work3].pointer)
#define road_flag(p) (p->s[stw_work4].d)
#define road_angleX(p) (p->s[stw_work5].d)
#define road_angleY(p) (p->s[stw_work6].d)
/*------------------------------------------------------------------------------
data move works
------------------------------------------------------------------------------*/
#define datamove_addr (execstp->s[stw_work8].pointer)
#define datamove_counter (execstp->s[stw_work9].d)
/*------------------------------------------------------------------------------
coinspeed works
------------------------------------------------------------------------------*/
#define initcoin_speedY s[stw_work7].f
/********************************************************************************
enemy define
*********************************************************************************/
/*----- player no work ( mail ) ni watasu !! ---*/
#define PLAYERMAIL_KOPA_JUMPEND 1
#define PLAYERMAIL_KOPA_JUMPEND_FAR PLAYERMAIL_KOPA_JUMPEND
#define PLAYERMAIL_KOPA_JUMPEND_NEAR (1<<1)
#define PLAYERMAIL_CARRYMODE_OFF (1<<2)
#define PLAYERMAIL_BOMB_BURN (1<<3)
#define PLAYERMAIL_FIRERING (1<<4)
#define PLAYERMAIL_CARRYTHROW_BIG (1<<5)
#define PLAYERMAIL_CARRYTHROW_SMALL (1<<6)
#define PLAYERMAIL_BIRDMODE_OFF (1<<7)
/*----- enemy no work ( mail ) ni watasu !! ---*/
#define EMAIL_PLAYER_PUNCH 1
#define EMAIL_PLAYER_KICK 2
#define EMAIL_PLAYER_TRAMP 3
#define EMAIL_PLAYER_HIPDROP 4
#define EMAIL_PLAYER_SLIDING 5
#define EMAIL_PLAYER_HEADATTACK 6
#define EMAIL_PLAYERMETAL (1<<9)
#define EMAIL_PLAYERGETOFF (1<<10)
#define EMAIL_CARRYMODE_ON (1<<11)
#define EMAIL_PLAYEREVEN (1<<12)
#define EMAIL_PLAYERDAMAGE (1<<13)
#define EMAIL_PLAYERATTACK (1<<14)
#define EMAIL_PLAYERHIT (1<<15)
#define EMAIL_DOOROPEN_1 (1<<16)
#define EMAIL_DOOROPEN_2 (1<<17)
#define EMAIL_DOORCLOSE_1 (1<<18)
#define EMAIL_DOORCLOSE_2 (1<<19)
#define EMAIL_RIDEON (1<<20)
#define EMAIL_KOPADOWN (1<<21)
#define EMAIL_NOKOBOARD_OFF (1<<22)
#define EMAIL_BOMB (1<<23)
#define EMAIL_PLAYERHITALL 0xffffffff
/****************************************************************/
/* */
/* block item code */
/* */
/****************************************************************/
#define TIMESCALE_X 1
#define TIMESCALE_Y (1<<1)
#define TIMESCALE_Z (1<<2)
#define DIST_FAR 19000.0f
#define ITEMHAT_TIME (30*10) /* itemhat remove time */
#define HANSWITCH_TIMER 400 /* timer block time */
#define EFFECT_NORMAL 0 /* effect labels */
#define EFFECT_POLYGON 1
#define EFFECT_BURN 2
#define EFFECT_MOWAN 3
/********************************************************************************
--------------
Debug Switch
--------------
*********************************************************************************/
#define DebugSW 1 /* 0/1 game/debug */
#define BRKprogram 0 /* 0/1 game/break program */
/* mcInitBGCheck */
/* InitStrategy */
/* SetStrategy */
/* ExecStrategy */
/* RemoveStrategy */
#define enemy_p0 (yd_work[DBMODE_ENEMYEDIT][0])
#define enemy_p1 (yd_work[DBMODE_ENEMYEDIT][1])
#define enemy_p2 (yd_work[DBMODE_ENEMYEDIT][2])
#define enemy_p3 (yd_work[DBMODE_ENEMYEDIT][3])
#define enemy_p4 (yd_work[DBMODE_ENEMYEDIT][4])
#define enemy_p5 (yd_work[DBMODE_ENEMYEDIT][5])
#define enemy_p6 (yd_work[DBMODE_ENEMYEDIT][6])
#define enemy_p7 (yd_work[DBMODE_ENEMYEDIT][7])
#define effect_p0 (yd_work[DBMODE_EFFECTEDIT][0])
#define effect_p1 (yd_work[DBMODE_EFFECTEDIT][1])
#define effect_p2 (yd_work[DBMODE_EFFECTEDIT][2])
#define effect_p3 (yd_work[DBMODE_EFFECTEDIT][3])
#define effect_p4 (yd_work[DBMODE_EFFECTEDIT][4])
#define effect_p5 (yd_work[DBMODE_EFFECTEDIT][5])
#define effect_p6 (yd_work[DBMODE_EFFECTEDIT][6])
#define effect_p7 (yd_work[DBMODE_EFFECTEDIT][7])
#define YAJIMA_LAND 32
#define DISP_CENTER_X 160 /* debug screen center */
#define DISP_CENTER_Y 120 /* debug screen center */
#define STRATEGY_ENEMYMOVE_OFF 1
/*===============================================================================
End End
================================================================================*/