extern int WallCheck(float *wX,float *wY,float *wZ,float offsetY,float r); extern int mcBGWallCheck(BGWallCheckRecord *wall); extern float mcBGRoofCheck(float px, float py, float pz,BGCheckData **bgdata); extern float s_bgcheck(StrategyRecord *stp); extern float GroundCheck(float px, float py, float pz,Plane **hitplane); extern float BGcheck(float px,float py,float pz); extern float mcMoveGroundCheck(float px, float py, float pz,BGCheckData **bgcheck_data); extern float mcBGGroundCheck(float px, float py, float pz,BGCheckData **bgdata) ; extern float mcWaterCheck(float wx,float wz); extern float mcGasCheck(float wx,float wz); extern void mcDebugBGlist(float x,float z); extern int mcR_PlaneCheck(int flag,float *wx,float *wy,float *wz,float r,BGCheckData **bgdata,float *planeY); extern void mcAllocBGList(void); extern void mcInitBGCheck(short sceneNo,short *funlike_bgdata,char *areainfo,short *taginfo); extern void mcInitMoveBGList(void); extern void stInitMoveBG(void); extern void stMainMoveBG(void); extern void mbgPlayer_1(void); extern void ReadPlayerPos(float *px,float *py,float *pz); extern void WritePlayerPos(float px,float py,float pz); extern void matrix_offset(int flag,StrategyRecord *mbg_stratp); extern void mbgPlayer_2(void); extern void mbgReset(void); extern void InitCoin(void); extern void ExecCoin(void); extern void InitCourse(void); extern void InitDoor(void); extern void ExecDoor(void); extern void InitLinklist(Linklist *root,Linklist *free,Linklist *buff,int pointersize,int maxsize); extern Linklist *MakeLinklist(Linklist *root,Linklist *free); extern StrategyRecord *MakeStratLinklist(StrategyList *root,StrategyList *free); extern void RemoveLinklist(Linklist *free,Linklist *node); extern void RemoveStratLinklist(StrategyList *free,StrategyList *node); extern void InitStrategyFreeList(void); extern void InitStrategyList(StrategyList *slist); extern void RemoveStrategyList(StrategyRecord *stratp); extern StrategyRecord *MakeStrategyNode(StrategyList *root); extern StrategyRecord *MakeStrategy(Path *localpath); extern void RemoveShape(StrategyRecord *stratp); extern StrategyRecord *s_enemyhit(StrategyRecord *stratp); extern void HitCheckOBJ(void); extern void s_enemysound(EnemySoundRecord *enemysound); extern void obj_remove_sound(unsigned long SOUNDDATA); extern void objsound_level(unsigned long SOUNDDATA); extern void objsound(unsigned long SOUNDDATA); extern int se_calc_vol(float dist); extern int se_calc_vol2(float dist); extern unsigned short Randomd(void); extern float Randomf(void); extern int RandomSign(void); extern void InitPathSystem(void); extern void s_pathentry(void); extern void s_playermove(void); extern void st_ramsave(StrategyRecord *stp,unsigned char bit); extern void RemoveStrategy(int screenNo,int actorID); extern void SetStrategy(int screenNo,ActorPtr actor); extern void InitStrategy(void); extern void ExecStrategy(int screenNo); extern unsigned long CtrlHand(int code,MapNode *node, void *data); extern unsigned long AlphaControl(int code, MapNode *node, void *data); extern unsigned long ControlShapeAnime(int code, MapNode *node); extern unsigned long ControlSwitchMap(int code,MapNode *node); extern void s_calc_skeleton_glbpos(AffineMtx mtx,StrategyRecord *stratp); extern void s_copy_scale_matrix(StrategyRecord *stp,AffineMtx *mdst,AffineMtx *msrc); extern void s_calc_skeleton_glbmtx(AffineMtx *mc,AffineMtx *ma,AffineMtx *mb); extern void s_modechange(StrategyRecord *obj,void *pathdata); extern float s_distanceXZ_obj2obj(StrategyRecord *obj1,StrategyRecord *obj2); extern float s_distance_obj2obj(StrategyRecord *obj1,StrategyRecord *obj2); extern float s_chase_speedF(float limit, float accel); extern int s_chase_speed(float *speed,float limit, float accel); extern float s_chase_position(float mypos, float targetpos,float limit); extern short s_chase_angle(short myangle,short targetangle,short limit); extern int s_chase_angleY( short targetangle,short speed ); extern short s_calc_targetangle(StrategyRecord *myobj,StrategyRecord *targetobj); extern short s_chase_obj_angle(StrategyRecord *myobj,StrategyRecord *targetobj,short idx_angle,short limit); extern void s_set_skeleton(StrategyRecord *stratp,short sx,short sy,short sz); extern void s_set_world(StrategyRecord *stratp,short wx,short wy,short wz); extern void s_set_angle(StrategyRecord *stratp,short ax,short ay,short az); extern StrategyRecord *s_makeobj_absolute(StrategyRecord *mother,short name,int shape,unsigned long *pathpointer,short wx,short wy,short wz,short ax,short ay,short az) ; extern StrategyRecord *s_makeobj_relative(StrategyRecord *mother,int shape,unsigned long *pathpointer,short sx,short sy,short sz,short ax,short ay,short az) ; extern StrategyRecord *s_makeobj_mother(StrategyRecord *mother,int shape,unsigned long *pathpointer) ; extern StrategyRecord *s_makeobj_initdata(StrategyRecord *mother,MoveInitRecord *move); extern StrategyRecord *s_makeobj(StrategyRecord *mother,short name,int shape,unsigned long *pathpointer); extern StrategyRecord *s_makeobj_nowpos(StrategyRecord *mother,int shape,unsigned long *pathpointer); extern StrategyRecord *s_makeobj_effect(short oy,float scale,StrategyRecord *mother,int shape,unsigned long *pathpointer); extern StrategyRecord *s_makeobj_nowpos_scale(StrategyRecord *mother,int shape,unsigned long *pathpointer,float scale); extern void s_set_childpos(StrategyRecord *child); extern StrategyRecord *s_makeobj_chain(short mode,short ox,short oy,short oz,StrategyRecord *mother,int shape,unsigned long *pathpointer); extern StrategyRecord *s_makeobj_chain_scale(short mode,short ox,short oy,short oz,float scale,StrategyRecord *mother,int shape,unsigned long *pathpointer); extern void s_calc_speedXYZ(void); extern void s_copy_animeposY(StrategyRecord *dist,StrategyRecord *source); extern void s_copy_worldXYZ_angleXYZ(StrategyRecord *dist,StrategyRecord *source); extern void s_copy_worldXYZ(StrategyRecord *dist,StrategyRecord *source); extern void s_copy_angleXYZ(StrategyRecord *dist,StrategyRecord *source); extern void s_copy_worldXYZmappos(StrategyRecord *stratp); extern void s_set_animation(StrategyRecord *stratp,int animeNo); extern void stRotatePoint(AffineMtx matrix,float *dst,float *src); extern void stBackPoint(AffineMtx matrix,float *dst,float *src); extern void s_scale_matrix(StrategyRecord *stratp); extern void s_copy_scale(StrategyRecord *dist,StrategyRecord *source); extern void stSetScale(StrategyRecord *stratp,float sx,float sy, float sz); extern void s_scale(StrategyRecord *stratp,float scale); extern void s_set_scale(float scale); extern void stSetSkelAnimeNumber(int animeNo); extern void s_set_skelanimeNo(int animeNo); extern void s_set_skelanime_speed(int animeNo,float speed); extern void s_set_skeletonobj(StrategyRecord *stratp,void *animePtr,int animeNo); extern void s_shapedispON(StrategyRecord *stratp); extern void s_shapeON(void); extern void s_shapedispOFF(StrategyRecord *stratp); extern void s_shapeOFF(void); extern void s_shape_disp(void); extern void s_shape_hide(void); extern void s_posoffset_mother(StrategyRecord *p,float ox,float oy,float oz); extern void s_set_catchOFF(float ox,float oy,float oz); extern void s_throw_object(void); extern void s_drop_object(void); extern void s_copy_animeangle(StrategyRecord *stratp); extern int s_check_enemytype(Path *localpath); extern StrategyRecord *s_find_obj(Path *pathname) ; extern float s_distance_nearobj(Path *pathname) ; extern StrategyRecord *s_search_nearobject(Path *pathname,float *dist); extern StrategyRecord *s_get_effectobj(void); extern int s_count_effect(void); extern int s_count_obj(Path *pathname); extern StrategyRecord *s_search_catch_enemy(Path *pathname,float dist); extern void s_modereset(void); extern void s_set_newmode(int mode); extern void s_chase_playerspeed(float min_limitspeed, float param); extern int s_wait_anime(void); extern int s_stop_animeend(void); extern int s_check_animeend(void); extern int s_check_animeend_2(void); extern int s_check_animenumber(int check_frame); extern int s_check_animenumber_speed(int check_frame,int speed); extern int s_check_animetable(short *table); extern int s_check_playerjump(void); extern int s_check_playercatch(void); extern void s_set_jumpstart(float jump_speed,int animeNo); extern void s_mode_catch(int anime,int mode); extern void s_mode_throw(float speedF,float speedY,int mode); extern void s_mode_drop(void); extern void s_change_shape(int shapeNo); extern void s_mail_to_player(int data); extern int s_mail_check(long data); extern void s_remove_obj(StrategyRecord *stratp); extern void s_allOFF(void); extern void s_hitOFF(void); extern void s_hitON(void); extern void s_hitON_obj(StrategyRecord *stp); extern void s_groundcheck(void); extern BGCheckData *s_groundcheck_ptr(void); extern void calc_friction(float *work,float friction); extern void s_calc_friction(float friction); extern int s_calc_enemyspeedXZ(float ang,int flag); extern void s_calc_speedY(float g,float bound,float uki); extern void s_moveobj(void); extern int s_bitcheck_clear(long *flag, unsigned long bitdata); extern void s_wall_revise(float offsetY,float r); extern short s_calc_dangle(short angle1,short angle2); extern void s_calc_FspeedON(void); extern void s_calc_YspeedON(void); extern void s_calcobj_speedF(void); extern float s_chase_set_speedY(float pos1,float pos2,float lim,float add); extern int s_hitcheck(StrategyRecord *my,StrategyRecord *you); extern void s_change_pathname(Path *path); extern void s_rename_pathname(StrategyRecord *stp,Path *path); extern int s_check_pathname(Path *path); extern int s_test_pathname(StrategyRecord *stp,Path *path); extern float s_calc_playerscope(void); extern float s_calc_enemyscope(void); extern int s_check_enemyscopeR(float R); extern int s_check_enemyscope(float Xmin,float Xmax,float Zmin,float Zmax); extern void s_copy_initpos(void); extern void s_reset_posspeed(void); extern void s_effect_updown(float data); extern void s_set_camerainfo(StrategyRecord *stratp,int status ); extern void s_set_playerinfo(StrategyRecord *stratp,int status, float dist); extern void s_softspritemodeON(StrategyRecord *stratp); extern void s_sethitbox(float Rdata,float Hdata); extern void s_setdamagebox(float Rdata,float Hdata); extern void s_make_escape_coin(StrategyRecord *stratp,int count,float speedY,short random); extern void s_makecoin(StrategyRecord *stratp,int count,float speedY); extern void s_makecoin_playerpos(void); extern float s_check_areaY(void); extern int s_anime_percent(void); extern int s_wallcheck(void); extern void s_enemybgcheck_main(short ang); extern void s_enemybgcheck(void); extern void s_enemymove(short angdata); extern int s_maparea_check(void); extern void s_optionmove_XZ(void); extern void s_optionmove_F(void); extern void s_calc_relpos(StrategyRecord *dst,StrategyRecord *src,float ox,float oy,float oz); extern short s_calc_returnangle(void); extern void s_copy_mapwork(StrategyRecord *dst,StrategyRecord *src); extern void s_rotate_vertex(StrategyRecord *stratp,short stw_dst,short stw_src); extern void s_create_matrix(StrategyRecord *stratp,short stw_pos,short stw_ang); extern void s_set_objmatrix(StrategyRecord *stratp); extern void s_calc_relative(StrategyRecord *child); extern void s_remove_relative(StrategyRecord *stratp); extern void s_move_angle(void); extern void s_move_animeangle(void); extern void s_anglesame(void); extern int s_road_move(int flag); extern void s_clear_delayrecord(DelayRecord *delay); extern float s_random_f(float s1); extern void s_random_scale(StrategyRecord *stp,float s1,float s2); extern void s_random_XYZ_offset(StrategyRecord *stp,float offset); extern void s_random_XZ_offset(StrategyRecord *stp,float offset); extern void s_calc_skyspeed(StrategyRecord *stratp); extern void s_3Dmove(void); extern short s_wall_rebound(void); extern void s_makeeffect_chiri(EffectRecord *effect); extern void s_set_hitparam(StrategyRecord *stp,HitCheckRecord *hitdata); extern long s_sign_d(long data); extern float s_abs_f(float data); extern long s_abs_d(long data); extern int s_flash_shape(int timestart,int count); extern int s_checkplayer_hipaatack(void); extern void s_kemuri(void); extern void s_kemuri_sound(unsigned long sound); extern void s_player_slideout(float R); extern void s_player_slideout_RH(float R,float H); extern void s_samplesmoke_main(void); extern void s_scaleY_anime(void); extern char s_datamove_init(void *data); extern char s_datamove_next(void); extern short s_calc_searchangle(StrategyRecord *obj1,StrategyRecord *obj2); extern void s_scale_timezoom(int flag,int count,float start,float end); extern void s_debug_position(void); extern void s_debug_angle(void); extern int s_rideon_player(void); extern int s_buruburu(int count,int offset); extern int s_gatan(int timer); extern void s_modejmp( void *jmpaddr[] ); extern StrategyRecord *s_make_enemystar_entry(int flag,int offsetYpos); extern void s_make_enemystar(void); extern int s_index_bit(int index); extern int s_enemy_areaout(void); extern int s_check_playerslow(int work); extern int s_check_chartable(char data,char *table); extern void s_areainitial(void); extern void s_areastage_init(void); extern void s_areastage_main(void); extern int s_hit_remove_enemy(HitCheckRecord *hit,unsigned long sound,int count); extern void s_burn_remove(float scale,int flag); extern void s_set_shapeinfo(StrategyRecord *stp,short *funlike); extern void s_wallreverse(void); extern int s_erase_height(float data); extern unsigned long CtrlCoord(int code,MapNode *node, void *data); extern unsigned long dbCtrlCoord(int code,MapNode *node, void *data); extern int s_check_shapehide(StrategyRecord *stp); extern void s_begin_demomode(void); extern void s_end_demomode(void); extern void s_begin_enemydemo(unsigned long data); extern void s_end_enemydemo(unsigned long data); extern int s_hitcheck_message_entry(float R,float H,short dangle); extern int s_hitcheck_message(float R,float H); extern int s_call_enemydemo(int type,int flag,int messageNo,int cameraNo); extern int s_call_talkdemo(int type,int flag,int cameraNo,int messageNo); extern int s_check_shapename(unsigned short shapeNo); extern void s_set_mtxmode(void); extern int s_boxcheck(short x1,short x2,short z1,short z2); extern void s_call_Viewshake(int mode); extern int s_fire_hitcheck(StrategyRecord *stp); extern int s_block_hitcheck(void); extern void s_copy_actorcode(StrategyRecord *dst,StrategyRecord *src); extern int s_setanime_start(int anime,int startframe); extern int s_setanime_endcheck(int anime); extern int s_setanime_endstop(int anime); extern int s_check_playercarry(void); extern int key_gacha(void); extern void s_walk_sound(int d1,int d2,unsigned long data); extern void s_demobegin(void); extern void s_demoend(void); extern int s_pl_hitcheck(void); extern void s_make_bluecoin(void); extern void sv2_enemyset_star(float x,float y,float z,float offset); extern OSTime dbCPUTimeStart(void); extern OSTime dbCPUTimeCount(OSTime starttime); extern void dbPrintInit(dbPrintRecord *dprint,short startX,short startY,short minY,short maxY,short h ); extern void dbPrintEntry(dbPrintRecord *dprint,const char *message,int data); extern void dbPrintOffset(int offsetX,int offsetY); extern void dbErrPrint(const char *message,int data); extern void dbPrint(const char *message,int data); extern void dbPrintInfo(const char *message,int data); extern void dbPrintTitle(const char *message,int data); extern void db_auto_repeat(void); extern void dbResetInit(void); extern void dbPlayInit(void); extern void db_control_yjeditor(void); extern void dbPlayMain(void); extern void dbPlayExit(void); extern void s_playerdebug(void); extern void s_debug(void); extern void db_disp_movestat(void); extern void db_hittest(HitCheckRecord *hit);