mirror of
https://github.com/izzy2lost/Starship.git
synced 2026-07-05 15:19:42 -07:00
Event opcodes documented, more all range stuff (#229)
* stuff * Torch1 * dark link
This commit is contained in:
Vendored
+5
-1
@@ -137,7 +137,11 @@
|
||||
"sf64mesg.h": "c",
|
||||
"sf64audio_external.h": "c",
|
||||
"audioseq_cmd.h": "c",
|
||||
"ultralog.h": "c"
|
||||
"ultralog.h": "c",
|
||||
"charconv": "c",
|
||||
"compare": "c",
|
||||
"os_motor.h": "c",
|
||||
"os_pfs.h": "c"
|
||||
},
|
||||
"C_Cpp_Runner.msvcBatchPath": ""
|
||||
}
|
||||
+3
-3
@@ -76,10 +76,10 @@ extern UNK_TYPE F_80177DE8;
|
||||
extern s32 gGameFrameCount;
|
||||
extern s32 gObjectLoadIndex;
|
||||
extern s32 gPrevEventActorIndex;
|
||||
extern s32 D_ctx_80177E78;
|
||||
extern s32 gFormationLeaderIndex;
|
||||
extern s32 gRingPassCount;
|
||||
extern Vec3f D_ctx_80177E88;
|
||||
extern Vec3f D_ctx_80177F10;
|
||||
extern Vec3f gFormationInitRot;
|
||||
extern Vec3f gFormationInitPos;
|
||||
extern UNK_TYPE F_80178020;
|
||||
extern s32 D_ctx_8017812C;
|
||||
extern LevelId gCurrentLevel;
|
||||
|
||||
+5
-5
@@ -24,8 +24,8 @@ void AllRange_ClearRadio(void);
|
||||
void func_360_8002EE64(Actor* this);
|
||||
void ActorAllRange_SpawnTeam(void);
|
||||
void ActorAllRange_PlayMessage(u16* msg, RadioCharacterId character);
|
||||
void func_360_8002F69C(Actor*);
|
||||
void func_360_8002FC00(Actor*);
|
||||
void ActorAllRange_UpdateStarWolfEvents(Actor*);
|
||||
void ActorAllRange_UpdateEvemyEvents(Actor*);
|
||||
void ActorAllRange_ApplyDamage(Actor*);
|
||||
bool func_360_80031900(Actor*);
|
||||
void ActorAllRange_Update(Actor* this);
|
||||
@@ -223,9 +223,9 @@ void Scenery42_Update(Scenery*);
|
||||
void Actor196_Update(Actor*);
|
||||
void Actor189_Update(Actor*);
|
||||
void MeteoTunnel_Update(Scenery*);
|
||||
void func_enmy2_8006ECBC(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void func_enmy2_8006EEFC(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void func_enmy2_8006EFA0(s32 unk0E4, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot,
|
||||
void Actor_SetupPlayerShot(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void Actor_SpawnPlayerLaser(s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
||||
void Actor_SpawnGreatFoxLaser(s32 actorId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot,
|
||||
f32 zRot);
|
||||
void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
|
||||
void ActorEvent_8006F254(Actor*);
|
||||
|
||||
+191
-170
@@ -10,11 +10,11 @@
|
||||
#define evaRotateFlag(actor) (actor)->iwork[6]
|
||||
#define evaTexLineFlag(actor) (actor)->iwork[7]
|
||||
#define evaTexLineIndex(actor) (actor)->iwork[8]
|
||||
#define EvaIwork9(actor) (actor)->iwork[9]
|
||||
#define evaLeaderActorIndex(actor) (actor)->iwork[9]
|
||||
#define EvaIwork10(actor) (actor)->iwork[10]
|
||||
#define EvaIwork11(actor) (actor)->iwork[11]
|
||||
#define EvaIwork12(actor) (actor)->iwork[12]
|
||||
#define EvaIwork13(actor) (actor)->iwork[13]
|
||||
#define evaFormationFly(actor) (actor)->iwork[13]
|
||||
#define EvaIwork14(actor) (actor)->iwork[14]
|
||||
#define EvaIwork15(actor) (actor)->iwork[15]
|
||||
#define EvaIwork16(actor) (actor)->iwork[16]
|
||||
@@ -67,47 +67,70 @@
|
||||
|
||||
#define EV_CHANGE_AI 200
|
||||
|
||||
#define EVENT_PLAY_MSG(rcid, msg) EVENT_CMD(EVOP_PLAY_MSG, rcid, msg)
|
||||
#define EVENT_STOP_SCRIPT() EVENT_CMD(EVOP_STOP_SCRIPT, 0, 0)
|
||||
#define EVENT_MAKE_TEXLINE(color) EVENT_CMD(EVOP_MAKE_TEXLINE, 0, color)
|
||||
#define EVENT_STOP_TEXLINE() EVENT_CMD(EVOP_STOP_TEXLINE, 0, 0)
|
||||
#define EVENT_INIT_ACTOR(info, health) EVENT_CMD(EVOP_INIT_ACTOR, health, info)
|
||||
#define EVENT_SET_SPEED(speed, zmode, time) EVENT_CMD(EVOP_SET_SPEED, EV_ZMODE(zmode) | ((speed) & 0x7F), time)
|
||||
#define EVENT_SET_ACCEL(speedTarget, zmode, time) EVENT_CMD(EVOP_SET_ACCEL, EV_ZMODE(zmode) | ((speedTarget) & 0x7F), time)
|
||||
#define EVENT_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0)
|
||||
#define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0)
|
||||
#define EVENT_SET_TRIGGER(cond, cmd) EVENT_CMD(EVOP_SET_TRIGGER, cmd, cond)
|
||||
#define EVENT_SET_Z_TRIGGER(z, cmd) EVENT_SET_TRIGGER(EVC_CLOSE_Z + (s32)((z) / 10), cmd)
|
||||
#define EVENT_CLEAR_TRIGGER(cmd) EVENT_SET_TRIGGER(EVC_NONE, cmd)
|
||||
#define EVENT_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count)
|
||||
#define EVENT_GOTO(cmd) EVENT_LOOP(0, cmd)
|
||||
#define EVENT_SET_SURFACE(type) EVENT_CMD(EVOP_SET_SURFACE, 0, type)
|
||||
#define EVENT_DROP_ITEM(item) EVENT_CMD(EVOP_DROP_ITEM, 0, item)
|
||||
#define EVENT_ADD_TO_GROUP(num, flags) EVENT_CMD(EVOP_ADD_TO_GROUP, flags, num)
|
||||
#define EVENT_SET_REVERB(reverb) EVENT_CMD(EVOP_SET_REVERB, 0, reverb)
|
||||
#define EVENT_STOP_BGM() EVENT_CMD(EVOP_STOP_BGM, 0, 0)
|
||||
#define EVENT_SET_ACTION(action) EVENT_CMD(EVOP_SET_ACTION, 0, action)
|
||||
#define EVENT_RESTORE_TEAM(teammate) EVENT_CMD(EVOP_RESTORE_TEAM, 0, teammate)
|
||||
#define EVENT_PLAY_SFX(sfx) EVENT_CMD(EVOP_PLAY_SFX, 0, sfx)
|
||||
#define EVENT_STOP_SFX(sfx) EVENT_CMD(EVOP_STOP_SFX, 0, sfx)
|
||||
#define EVENT_SET_CALL(duration, voiceParam) EVENT_CMD(EVOP_SET_CALL, voiceParam, duration)
|
||||
#define EVENT_SET_BASE_ZVEL(zvel) EVENT_CMD(EVOP_SET_BASE_ZVEL, 0, zvel)
|
||||
#define EVENT_SET_AS_LEADER() EVENT_CMD(EVOP_SET_AS_LEADER, 0 ,0 )
|
||||
#define EVENT_START_FORMATION(duration) EVENT_CMD(EVOP_START_FORMATION, 0, duration)
|
||||
#define EVENT_STOP_FORMATION() EVENT_CMD(EVOP_STOP_FORMATION, 0, 0)
|
||||
|
||||
#define EVENT_F4_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_X, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_X, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_Y, (rotVel) * 10, rot)
|
||||
|
||||
#define EVENT_ROT_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_X, (rotVel) * 10, rot)
|
||||
#define EVENT_ROT_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_X, (rotVel) * 10, rot)
|
||||
#define EVENT_ROT_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Y, (rotVel) * 10, rot)
|
||||
#define EVENT_ROT_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Y, (rotVel) * 10, rot)
|
||||
#define EVENT_ROT_PLUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_Z, (rotVel) * 10, rot)
|
||||
#define EVENT_ROT_MINUS_Z(rot, rotVel) EVENT_CMD(EVOP_ROT_MINUS_Z, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_X, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_X, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, (rotVel) * 10, rot)
|
||||
#define EVENT_F4_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_Y, (rotVel) * 10, rot)
|
||||
#define EVENT_SET_BASE_ZVEL(zvel) EVENT_CMD(EVOP_SET_BASE_ZVEL, 0, zvel)
|
||||
#define EVENT_SET_TEAM_ID(teamId) EVENT_CMD(EVOP_SET_TEAM_ID, 0, teamId)
|
||||
#define EVENT_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId)
|
||||
|
||||
#define EVENT_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0)
|
||||
#define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0)
|
||||
|
||||
#define EVENT_PURSUE_PLAYER(duration, turnRate) EVENT_CMD(EVOP_PURSUE_PLAYER, turnRate, duration)
|
||||
#define EVENT_FLEE_PLAYER(duration, turnRate) EVENT_CMD(EVOP_FLEE_PLAYER, turnRate, duration)
|
||||
#define EVENT_PURSUE_TARGET(duration, turnRate) EVENT_CMD(EVOP_PURSUE_TARGET, turnRate, duration)
|
||||
#define EVENT_FLEE_TARGET(duration, turnRate) EVENT_CMD(EVOP_FLEE_TARGET, turnRate, duration)
|
||||
#define EVENT_CHASE_TARGET(duration, turnRate) EVENT_CMD(EVOP_CHASE_TARGET, turnRate, duration)
|
||||
#define EVENT_SET_TARGET(teamId, spread) EVENT_CMD(EVOP_SET_TARGET, teamId, spread)
|
||||
#define EVENT_CHASE_TARGET(duration, turnRate) EVENT_CMD(EVOP_CHASE_TARGET, duration, turnRate)
|
||||
#define EVENT_PURSUE_CAMERA(duration, turnRate) EVENT_CMD(EVOP_PURSUE_CAMERA, turnRate, duration)
|
||||
#define EVENT_FLEE_CAMERA(duration, turnRate) EVENT_CMD(EVOP_FLEE_CAMERA, turnRate, duration)
|
||||
#define EVENT_SET_WAIT(duration) EVENT_CMD(EVOP_SET_WAIT, 0, duration)
|
||||
|
||||
#define EVENT_SET_CALL(duration, voiceParam) EVENT_CMD(EVOP_SET_CALL, voiceParam, duration)
|
||||
#define EVENT_RESTORE_TEAM(teammate) EVENT_CMD(EVOP_RESTORE_TEAM, 0, teammate)
|
||||
#define EVENT_PLAY_SFX(sfx) EVENT_CMD(EVOP_PLAY_SFX, 0, sfx)
|
||||
#define EVENT_STOP_SFX(sfx) EVENT_CMD(EVOP_STOP_SFX, 0, sfx)
|
||||
|
||||
#define EVENT_SET_TRIGGER(cond, cmd) EVENT_CMD(EVOP_SET_TRIGGER, cmd, cond)
|
||||
#define EVENT_SET_Z_TRIGGER(z, cmd) EVENT_SET_TRIGGER(EVC_CLOSE_Z + (s32)((z) / 100), cmd)
|
||||
#define EVENT_CLEAR_TRIGGER(cmd) EVENT_SET_TRIGGER(EVC_NONE, cmd)
|
||||
|
||||
#define EVENT_INIT_ACTOR(info, health) EVENT_CMD(EVOP_INIT_ACTOR, health, info)
|
||||
#define EVENT_SET_TEAM_ID(teamId) EVENT_CMD(EVOP_SET_TEAM_ID, 0, teamId)
|
||||
|
||||
#define EVENT_SET_ACTION(action) EVENT_CMD(EVOP_SET_ACTION, 0, action)
|
||||
#define EVENT_ADD_TO_GROUP(num, flags) EVENT_CMD(EVOP_ADD_TO_GROUP, flags, num)
|
||||
|
||||
#define EVENT_DROP_ITEM(item) EVENT_CMD(EVOP_DROP_ITEM, 0, item)
|
||||
|
||||
#define EVENT_SET_REVERB(reverb) EVENT_CMD(EVOP_SET_REVERB, 0, reverb)
|
||||
#define EVENT_SET_SURFACE(type) EVENT_CMD(EVOP_SET_SURFACE, 0, type)
|
||||
#define EVENT_PLAY_MSG(rcid, msg) EVENT_CMD(EVOP_PLAY_MSG, rcid, msg)
|
||||
#define EVENT_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId)
|
||||
#define EVENT_STOP_BGM() EVENT_CMD(EVOP_STOP_BGM, 0, 0)
|
||||
|
||||
#define EVENT_MAKE_TEXLINE(color) EVENT_CMD(EVOP_MAKE_TEXLINE, 0, color)
|
||||
#define EVENT_STOP_TEXLINE() EVENT_CMD(EVOP_STOP_TEXLINE, 0, 0)
|
||||
|
||||
#define EVENT_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count)
|
||||
#define EVENT_GOTO(cmd) EVENT_LOOP(0, cmd)
|
||||
|
||||
#define EVENT_STOP_SCRIPT() EVENT_CMD(EVOP_STOP_SCRIPT, 0, 0)
|
||||
|
||||
|
||||
typedef enum EventModeZ {
|
||||
EMZ_REST,
|
||||
EMZ_RELATIVE,
|
||||
@@ -119,9 +142,9 @@ typedef enum EventOpcode {
|
||||
/* 0 */ EVOP_SET_SPEED,
|
||||
/* 1 */ EVOP_SET_ACCEL,
|
||||
/* 2 */ EVOP_SET_BASE_ZVEL,
|
||||
/* 3 */ EVOP_SET_TO_IWORK_9,
|
||||
/* 4 */ EVOP_SET_IWORK_13,
|
||||
/* 8 */ EVOP_CLEAR_IWORK_13 = 8,
|
||||
/* 3 */ EVOP_SET_AS_LEADER,
|
||||
/* 4 */ EVOP_START_FORMATION,
|
||||
/* 8 */ EVOP_STOP_FORMATION = 8,
|
||||
/* 9 */ EVOP_F4_PLUS_X,
|
||||
/* 10 */ EVOP_F4_MINUS_X,
|
||||
/* 11 */ EVOP_F4_PLUS_Y,
|
||||
@@ -134,14 +157,14 @@ typedef enum EventOpcode {
|
||||
/* 21 */ EVOP_ROT_MINUS_Z,
|
||||
/* 24 */ EVOP_SET_ROTATE = 24,
|
||||
/* 25 */ EVOP_STOP_ROTATE,
|
||||
/* 40 */ EVOP_SET_STATE_6 = 40,
|
||||
/* 41 */ EVOP_SET_STATE_7,
|
||||
/* 42 */ EVOP_SET_STATE_8,
|
||||
/* 43 */ EVOP_SET_STATE_9,
|
||||
/* 40 */ EVOP_PURSUE_PLAYER = 40,
|
||||
/* 41 */ EVOP_FLEE_PLAYER,
|
||||
/* 42 */ EVOP_PURSUE_TARGET,
|
||||
/* 43 */ EVOP_FLEE_TARGET,
|
||||
/* 44 */ EVOP_CHASE_TARGET,
|
||||
/* 45 */ EVOP_SET_TARGET,
|
||||
/* 46 */ EVOP_SET_STATE_14,
|
||||
/* 47 */ EVOP_SET_STATE_15,
|
||||
/* 46 */ EVOP_PURSUE_CAMERA,
|
||||
/* 47 */ EVOP_FLEE_CAMERA,
|
||||
/* 48 */ EVOP_SET_WAIT,
|
||||
/* 56 */ EVOP_SET_CALL = 56,
|
||||
/* 57 */ EVOP_RESTORE_TEAM,
|
||||
@@ -166,7 +189,7 @@ typedef enum EventOpcode {
|
||||
|
||||
typedef enum EventCondition {
|
||||
/* 0 */ EVC_NONE,
|
||||
/* 1 */ EVC_1,
|
||||
/* 1 */ EVC_NO_TARGET,
|
||||
/* 2 */ EVC_TEAM_COUNT_3,
|
||||
/* 3 */ EVC_TEAM_COUNT_2,
|
||||
/* 4 */ EVC_TEAM_COUNT_1,
|
||||
@@ -206,12 +229,12 @@ typedef enum EventCondition {
|
||||
/* 38 */ EVC_UNK3_LASER,
|
||||
/* 39 */ EVC_SHOT_CLOSE_150,
|
||||
/* 40 */ EVC_SHOT_CLOSE_300,
|
||||
/* 41 */ EVC_41,
|
||||
/* 42 */ EVC_42,
|
||||
/* 43 */ EVC_43,
|
||||
/* 41 */ EVC_NO_LEADER,
|
||||
/* 42 */ EVC_NO_FOLLOWER,
|
||||
/* 43 */ EVC_HAS_FOLLOWER,
|
||||
/* 44 */ EVC_TOOK_DAMAGE,
|
||||
/* 45 */ EVC_PASSED_ALL_RINGS,
|
||||
/* 46 */ EVC_46,
|
||||
/* 46 */ EVC_ATTACK_GROUP_CLEARED,
|
||||
/* 47 */ EVC_PRESS_CRIGHT,
|
||||
/* 48 */ EVC_WING_BROKEN,
|
||||
/* 49 */ EVC_ME_CLEAR,
|
||||
@@ -227,14 +250,12 @@ typedef enum EventCondition {
|
||||
/* 59 */ EVC_ZO_CLEAR,
|
||||
/* 60 */ EVC_SZ_CLEAR,
|
||||
/* 61 */ EVC_A6_CLEAR,
|
||||
/* 62 */ EVC_62,
|
||||
/* 63 */ EVC_63,
|
||||
/* 62 */ EVC_NOT_CHASED,
|
||||
/* 63 */ EVC_CHASED,
|
||||
/* 64 */ EVC_MISSED_SEARCHLIGHT,
|
||||
/* 65 */ EVC_30_HITS,
|
||||
/* 66 */ EVC_80_HITS,
|
||||
/* 67 */ EVC_EXPERT_MODE,
|
||||
/* 68 */ EVC_68,
|
||||
/* 69 */ EVC_69,
|
||||
/* 100 */ EVC_CLOSE_Z=100,
|
||||
} EventCondition;
|
||||
|
||||
@@ -245,16 +266,16 @@ typedef enum EventState {
|
||||
/* 3 */ EVSTATE_F4_MINUS_X,
|
||||
/* 4 */ EVSTATE_F4_PLUS_Y,
|
||||
/* 5 */ EVSTATE_F4_MINUS_Y,
|
||||
/* 6 */ EVSTATE_6,
|
||||
/* 7 */ EVSTATE_7,
|
||||
/* 8 */ EVSTATE_8,
|
||||
/* 9 */ EVSTATE_9,
|
||||
/* 6 */ EVSTATE_PURSUE_PLAYER,
|
||||
/* 7 */ EVSTATE_FLEE_PLAYER,
|
||||
/* 8 */ EVSTATE_PURSUE_TARGET,
|
||||
/* 9 */ EVSTATE_FLEE_TARGET,
|
||||
/* 10 */ EVSTATE_ME_AS_OPEN,
|
||||
/* 11 */ EVSTATE_ME_AS_CLOSE,
|
||||
/* 12 */ EVSTATE_TEAM_RETREAT,
|
||||
/* 13 */ EVSTATE_CHASE_TARGET,
|
||||
/* 14 */ EVSTATE_14,
|
||||
/* 15 */ EVSTATE_15,
|
||||
/* 14 */ EVSTATE_PURSUE_CAMERA,
|
||||
/* 15 */ EVSTATE_FLEE_CAMERA,
|
||||
/* 200 */ EVSTATE_SCRIPT_END = 200,
|
||||
/* 1000 */ EVSTATE_1000 = 1000,
|
||||
} EventState;
|
||||
@@ -273,7 +294,7 @@ typedef enum EventAction {
|
||||
/* 10 */ EVACT_10,
|
||||
/* 11 */ EVACT_11,
|
||||
/* 12 */ EVACT_DESPAWN,
|
||||
/* 13 */ EVACT_13,
|
||||
/* 13 */ EVACT_TI_DROP_MINE,
|
||||
/* 14 */ EVACT_ME_AS_OPEN,
|
||||
/* 15 */ EVACT_ME_AS_CLOSE,
|
||||
/* 16 */ EVACT_16,
|
||||
@@ -282,119 +303,119 @@ typedef enum EventAction {
|
||||
/* 19 */ EVACT_19,
|
||||
} EventAction;
|
||||
|
||||
typedef enum EventActorInfo {
|
||||
/* 0 */ EINFO_0,
|
||||
/* 1 */ EINFO_1,
|
||||
/* 2 */ EINFO_2,
|
||||
/* 3 */ EINFO_3,
|
||||
/* 4 */ EINFO_4,
|
||||
/* 5 */ EINFO_5,
|
||||
/* 6 */ EINFO_6,
|
||||
/* 7 */ EINFO_7,
|
||||
/* 8 */ EINFO_8,
|
||||
/* 9 */ EINFO_9,
|
||||
/* 10 */ EINFO_10,
|
||||
/* 11 */ EINFO_11,
|
||||
/* 12 */ EINFO_12,
|
||||
/* 13 */ EINFO_13,
|
||||
/* 14 */ EINFO_14,
|
||||
/* 15 */ EINFO_15,
|
||||
/* 16 */ EINFO_16,
|
||||
/* 17 */ EINFO_17,
|
||||
/* 18 */ EINFO_18,
|
||||
/* 19 */ EINFO_19,
|
||||
/* 20 */ EINFO_20,
|
||||
/* 21 */ EINFO_21,
|
||||
/* 22 */ EINFO_22,
|
||||
/* 23 */ EINFO_23,
|
||||
/* 24 */ EINFO_24,
|
||||
/* 25 */ EINFO_25,
|
||||
/* 26 */ EINFO_26,
|
||||
/* 27 */ EINFO_27,
|
||||
/* 28 */ EINFO_28,
|
||||
/* 29 */ EINFO_29,
|
||||
/* 30 */ EINFO_30,
|
||||
/* 31 */ EINFO_31,
|
||||
/* 32 */ EINFO_32,
|
||||
/* 33 */ EINFO_33,
|
||||
/* 34 */ EINFO_34,
|
||||
/* 35 */ EINFO_35,
|
||||
/* 36 */ EINFO_36,
|
||||
/* 37 */ EINFO_37,
|
||||
/* 38 */ EINFO_38,
|
||||
/* 39 */ EINFO_39,
|
||||
/* 40 */ EINFO_40,
|
||||
/* 41 */ EINFO_41,
|
||||
/* 42 */ EINFO_42,
|
||||
/* 43 */ EINFO_43,
|
||||
/* 44 */ EINFO_44,
|
||||
/* 45 */ EINFO_45,
|
||||
/* 46 */ EINFO_46,
|
||||
/* 47 */ EINFO_47,
|
||||
/* 48 */ EINFO_48,
|
||||
/* 49 */ EINFO_49,
|
||||
/* 50 */ EINFO_50,
|
||||
/* 51 */ EINFO_51,
|
||||
/* 52 */ EINFO_52,
|
||||
/* 53 */ EINFO_53,
|
||||
/* 54 */ EINFO_54,
|
||||
/* 55 */ EINFO_55,
|
||||
/* 56 */ EINFO_56,
|
||||
/* 57 */ EINFO_57,
|
||||
/* 58 */ EINFO_58,
|
||||
/* 59 */ EINFO_59,
|
||||
/* 60 */ EINFO_60,
|
||||
/* 61 */ EINFO_61,
|
||||
/* 62 */ EINFO_62,
|
||||
/* 63 */ EINFO_63,
|
||||
/* 64 */ EINFO_64,
|
||||
/* 65 */ EINFO_65,
|
||||
/* 66 */ EINFO_66,
|
||||
/* 67 */ EINFO_67,
|
||||
/* 68 */ EINFO_68,
|
||||
/* 69 */ EINFO_69,
|
||||
/* 70 */ EINFO_70,
|
||||
/* 71 */ EINFO_71,
|
||||
/* 72 */ EINFO_72,
|
||||
/* 73 */ EINFO_73,
|
||||
/* 74 */ EINFO_74,
|
||||
/* 75 */ EINFO_75,
|
||||
/* 76 */ EINFO_76,
|
||||
/* 77 */ EINFO_77,
|
||||
/* 78 */ EINFO_78,
|
||||
/* 79 */ EINFO_79,
|
||||
/* 80 */ EINFO_80,
|
||||
/* 81 */ EINFO_81,
|
||||
/* 82 */ EINFO_82,
|
||||
/* 83 */ EINFO_83,
|
||||
/* 84 */ EINFO_84,
|
||||
/* 85 */ EINFO_85,
|
||||
/* 86 */ EINFO_86,
|
||||
/* 87 */ EINFO_87,
|
||||
/* 88 */ EINFO_88,
|
||||
/* 89 */ EINFO_89,
|
||||
/* 90 */ EINFO_90,
|
||||
/* 91 */ EINFO_91,
|
||||
/* 92 */ EINFO_92,
|
||||
/* 93 */ EINFO_93,
|
||||
/* 94 */ EINFO_94,
|
||||
/* 95 */ EINFO_95,
|
||||
/* 96 */ EINFO_96,
|
||||
/* 97 */ EINFO_97,
|
||||
/* 98 */ EINFO_98,
|
||||
/* 99 */ EINFO_99,
|
||||
/* 100 */ EINFO_100,
|
||||
/* 101 */ EINFO_101,
|
||||
/* 102 */ EINFO_102,
|
||||
/* 103 */ EINFO_103,
|
||||
/* 104 */ EINFO_104,
|
||||
/* 105 */ EINFO_105,
|
||||
/* 106 */ EINFO_106,
|
||||
/* 107 */ EINFO_107,
|
||||
/* 200 */ EINFO_200 = 200,
|
||||
/* 300 */ EINFO_300 = 300,
|
||||
/* 4095*/ EINFO_FFF = 4095,
|
||||
} EventActorInfo;
|
||||
typedef enum EventActorId {
|
||||
/* 0 */ EVID_0,
|
||||
/* 1 */ EVID_1,
|
||||
/* 2 */ EVID_2,
|
||||
/* 3 */ EVID_3,
|
||||
/* 4 */ EVID_4,
|
||||
/* 5 */ EVID_5,
|
||||
/* 6 */ EVID_6,
|
||||
/* 7 */ EVID_7,
|
||||
/* 8 */ EVID_8,
|
||||
/* 9 */ EVID_9,
|
||||
/* 10 */ EVID_10,
|
||||
/* 11 */ EVID_11,
|
||||
/* 12 */ EVID_12,
|
||||
/* 13 */ EVID_13,
|
||||
/* 14 */ EVID_14,
|
||||
/* 15 */ EVID_15,
|
||||
/* 16 */ EVID_16,
|
||||
/* 17 */ EVID_17,
|
||||
/* 18 */ EVID_18,
|
||||
/* 19 */ EVID_19,
|
||||
/* 20 */ EVID_20,
|
||||
/* 21 */ EVID_21,
|
||||
/* 22 */ EVID_22,
|
||||
/* 23 */ EVID_23,
|
||||
/* 24 */ EVID_24,
|
||||
/* 25 */ EVID_25,
|
||||
/* 26 */ EVID_26,
|
||||
/* 27 */ EVID_27,
|
||||
/* 28 */ EVID_28,
|
||||
/* 29 */ EVID_29,
|
||||
/* 30 */ EVID_30,
|
||||
/* 31 */ EVID_31,
|
||||
/* 32 */ EVID_32,
|
||||
/* 33 */ EVID_33,
|
||||
/* 34 */ EVID_34,
|
||||
/* 35 */ EVID_35,
|
||||
/* 36 */ EVID_36,
|
||||
/* 37 */ EVID_37,
|
||||
/* 38 */ EVID_38,
|
||||
/* 39 */ EVID_39,
|
||||
/* 40 */ EVID_40,
|
||||
/* 41 */ EVID_41,
|
||||
/* 42 */ EVID_42,
|
||||
/* 43 */ EVID_43,
|
||||
/* 44 */ EVID_44,
|
||||
/* 45 */ EVID_45,
|
||||
/* 46 */ EVID_46,
|
||||
/* 47 */ EVID_47,
|
||||
/* 48 */ EVID_48,
|
||||
/* 49 */ EVID_49,
|
||||
/* 50 */ EVID_50,
|
||||
/* 51 */ EVID_51,
|
||||
/* 52 */ EVID_52,
|
||||
/* 53 */ EVID_53,
|
||||
/* 54 */ EVID_54,
|
||||
/* 55 */ EVID_55,
|
||||
/* 56 */ EVID_56,
|
||||
/* 57 */ EVID_57,
|
||||
/* 58 */ EVID_58,
|
||||
/* 59 */ EVID_59,
|
||||
/* 60 */ EVID_60,
|
||||
/* 61 */ EVID_61,
|
||||
/* 62 */ EVID_62,
|
||||
/* 63 */ EVID_63,
|
||||
/* 64 */ EVID_64,
|
||||
/* 65 */ EVID_65,
|
||||
/* 66 */ EVID_66,
|
||||
/* 67 */ EVID_67,
|
||||
/* 68 */ EVID_68,
|
||||
/* 69 */ EVID_69,
|
||||
/* 70 */ EVID_70,
|
||||
/* 71 */ EVID_71,
|
||||
/* 72 */ EVID_72,
|
||||
/* 73 */ EVID_73,
|
||||
/* 74 */ EVID_74,
|
||||
/* 75 */ EVID_75,
|
||||
/* 76 */ EVID_76,
|
||||
/* 77 */ EVID_77,
|
||||
/* 78 */ EVID_78,
|
||||
/* 79 */ EVID_79,
|
||||
/* 80 */ EVID_80,
|
||||
/* 81 */ EVID_81,
|
||||
/* 82 */ EVID_82,
|
||||
/* 83 */ EVID_83,
|
||||
/* 84 */ EVID_84,
|
||||
/* 85 */ EVID_85,
|
||||
/* 86 */ EVID_86,
|
||||
/* 87 */ EVID_87,
|
||||
/* 88 */ EVID_88,
|
||||
/* 89 */ EVID_89,
|
||||
/* 90 */ EVID_90,
|
||||
/* 91 */ EVID_91,
|
||||
/* 92 */ EVID_92,
|
||||
/* 93 */ EVID_93,
|
||||
/* 94 */ EVID_94,
|
||||
/* 95 */ EVID_95,
|
||||
/* 96 */ EVID_96,
|
||||
/* 97 */ EVID_97,
|
||||
/* 98 */ EVID_98,
|
||||
/* 99 */ EVID_99,
|
||||
/* 100 */ EVID_100,
|
||||
/* 101 */ EVID_101,
|
||||
/* 102 */ EVID_102,
|
||||
/* 103 */ EVID_103,
|
||||
/* 104 */ EVID_104,
|
||||
/* 105 */ EVID_105,
|
||||
/* 106 */ EVID_106,
|
||||
/* 107 */ EVID_107,
|
||||
/* 200 */ EVID_200 = 200,
|
||||
/* 300 */ EVID_300 = 300,
|
||||
/* 4095*/ EVID_FFF = 4095,
|
||||
} EventActorId;
|
||||
|
||||
typedef enum EventSfx {
|
||||
/* 0 */ EVSFX_0,
|
||||
|
||||
@@ -261,10 +261,14 @@ typedef struct {
|
||||
/* 0x3FC */ f32 sfxSource[3];
|
||||
} Boss; // size = 0x408
|
||||
|
||||
#define DMG_COLLISION 3
|
||||
#define DMG_EXPLOSION 2
|
||||
#define DMG_BEAM 1
|
||||
#define DMG_NONE 0
|
||||
#define DMG_BOMB -1
|
||||
#define DMG_zRot_0FC 100
|
||||
#define DMG_UNK_100 100
|
||||
|
||||
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ Object obj;
|
||||
@@ -963,7 +967,7 @@ typedef Scenery Scenery_35;
|
||||
typedef Scenery Scenery_36;
|
||||
typedef Scenery Scenery_37;
|
||||
typedef Scenery Scenery_38;
|
||||
typedef Scenery Scenery_39;
|
||||
typedef Scenery MeteoTunnel;
|
||||
typedef Scenery Scenery_40;
|
||||
typedef Scenery Scenery_41;
|
||||
typedef Scenery Scenery_42;
|
||||
|
||||
@@ -86,6 +86,11 @@ typedef enum {
|
||||
/* 9 */ PLAYERSHOT_9,
|
||||
} PlayerShotId;
|
||||
|
||||
#define NPC_SHOT_ID 100
|
||||
#define CS_SHOT_ID 100
|
||||
#define DMG_SRC_2 2
|
||||
#define DMG_SRC_100 100
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ LASERS_SINGLE,
|
||||
/* 1 */ LASERS_TWIN,
|
||||
@@ -108,7 +113,7 @@ typedef struct {
|
||||
/* 0x5C */ s32 unk_5C;
|
||||
/* 0x60 */ s32 unk_60;
|
||||
/* 0x64 */ s32 unk_64;
|
||||
/* 0x68 */ s32 playerNum;
|
||||
/* 0x68 */ s32 sourceId;
|
||||
/* 0x6C */ u8 bonus;
|
||||
} PlayerShot; // size = 0x70
|
||||
|
||||
|
||||
+2
-2
@@ -7,7 +7,7 @@
|
||||
#include "sf64player.h"
|
||||
|
||||
// fox_360
|
||||
extern s32 D_360_800C9B4C;
|
||||
extern s32 gAllRangeSpawnEvent;
|
||||
|
||||
// fox_bg
|
||||
extern u16 gStarColors[16];
|
||||
@@ -47,7 +47,7 @@ extern f32 gWarpZoneEvent94Hitbox[];
|
||||
extern f32 gWarpZoneEvent96Hitbox[];
|
||||
extern f32 gWarpZoneEvent92Hitbox[];
|
||||
extern f32 gWarpZoneEvent93Hitbox[];
|
||||
extern ObjectInfo D_edata_800CC124[];
|
||||
extern ObjectInfo gObjectInfo[];
|
||||
extern f32* D_edata_800CF964[];
|
||||
|
||||
// fox_edisplay
|
||||
|
||||
@@ -67,7 +67,7 @@ D_display_800CA23C = 0x800CA23C;//size:0x18
|
||||
D_display_800CA26C = 0x800CA26C;//size:0x20
|
||||
D_800CA260 = 0x800CA260;//size:0xC
|
||||
D_display_801613E0 = 0x801613E0;//size:0x18
|
||||
D_edata_800CC124 = 0x800CC124;//type:u8
|
||||
gObjectInfo = 0x800CC124;//type:u8
|
||||
D_boss_800C9E90 = 0x800C9E90;//size:0x70
|
||||
|
||||
gLeveLClearStatus = 0x800D3180; // size:0x20
|
||||
|
||||
@@ -551,11 +551,11 @@ gBombCount = 0x80177DA0;
|
||||
gGameFrameCount = 0x80177DB0;
|
||||
gObjectLoadIndex = 0x80177DC8;
|
||||
gPrevEventActorIndex = 0x80177E70;
|
||||
D_ctx_80177E78 = 0x80177E78;
|
||||
gFormationLeaderIndex = 0x80177E78;
|
||||
gRingPassCount = 0x80177E80;
|
||||
D_ctx_80177E88 = 0x80177E88; // size:0xC
|
||||
gFormationInitRot = 0x80177E88; // size:0xC
|
||||
gTeamArrowsViewPos = 0x80177E98;
|
||||
D_ctx_80177F10 = 0x80177F10;
|
||||
gFormationInitPos = 0x80177F10;
|
||||
D_ctx_80177F20 = 0x80177F20; //size:0xF4
|
||||
D_ctx_80178028 = 0x80178028; //size:0xF4
|
||||
D_ctx_8017812C = 0x8017812C;
|
||||
|
||||
+126
-126
@@ -32,32 +32,6 @@ typedef enum ActorAllRangeState {
|
||||
STATE360_19,
|
||||
} ActorAllRangeState;
|
||||
|
||||
/* static */ Vec3f D_360_800C9A90 = { 0.0f, -10.0f, 0.0f };
|
||||
/* static */ Vec3f D_360_800C9A9C[4] = {
|
||||
{ 0.0f, 20000.0f, 0.0f },
|
||||
{ 0.0f, 700.0f, 6500.0f },
|
||||
{ -300.0f, 800.0f, 6800.0f },
|
||||
{ 300.0f, 900.0f, 7200.0f },
|
||||
};
|
||||
/* static */ AllRangeAi D_360_800C9ACC[4] = { AI360_FOX, AI360_FALCO, AI360_SLIPPY, AI360_PEPPY };
|
||||
/* static */ s32 D_360_800C9ADC[4] = { -1, AI360_10, AI360_10 + 1, AI360_10 + 2 };
|
||||
/* static */ s32 D_360_800C9AEC[4] = { -1, AI360_10 + 11, AI360_10 + 13, AI360_10 + 15 };
|
||||
/* static */ Vec3f D_360_800C9AFC[4] = {
|
||||
{ 9500.0f, 5000.0f, 9500.0f },
|
||||
{ 10000.0f, 5000.0f, 10000.0f },
|
||||
{ 10000.0f, 5000.0f, 9500.0f },
|
||||
{ 9500.0f, 5000.0f, 10000.0f },
|
||||
};
|
||||
/* static */ s32 D_360_800C9B2C[4] = { AI360_FOX, AI360_FALCO, AI360_PEPPY, AI360_SLIPPY };
|
||||
/* static */ f32 D_360_800C9B3C[4] = { 330.0f, 90.0f, 280.0f, 70.0f };
|
||||
s32 D_360_800C9B4C = 96 * 30;
|
||||
/* static */ Vec3f D_360_800C9B50[6] = {
|
||||
{ 8000.0f, 500.0f, 0.0f }, { 5000.0f, 400.0f, 0.0f }, { 2000.0f, 300.0f, 0.0f },
|
||||
{ -500.0f, 250.0f, 0.0f }, { 0.0f, 250.0f, 0.0f }, { 0.0f, 250.0f, 0.0f },
|
||||
};
|
||||
/* static */ Vec3f D_360_800C9B98 = { 60.0f, 0.0f, -170.0f };
|
||||
/* static */ Vec3f D_360_800C9BA4 = { -60.0f, 0.0f, -170.0f };
|
||||
|
||||
s32 gAllRangeSupplyTimer;
|
||||
s32 sStarWolfKillTimer;
|
||||
s16 gStarWolfMsgTimer;
|
||||
@@ -318,7 +292,7 @@ void func_360_8002EE64(Actor* this) {
|
||||
Vec3f spB4;
|
||||
Vec3f spA8;
|
||||
f32 spA0[2];
|
||||
Vec3f sp94 = D_360_800C9A90;
|
||||
Vec3f sp94 = { 0.0f, -10.0f, 0.0f };
|
||||
s32 pad1;
|
||||
s32 pad2;
|
||||
|
||||
@@ -377,6 +351,16 @@ void func_360_8002EE64(Actor* this) {
|
||||
}
|
||||
}
|
||||
|
||||
static Vec3f sTeamSpawnPos[4] = {
|
||||
{ 0.0f, 20000.0f, 0.0f },
|
||||
{ 0.0f, 700.0f, 6500.0f },
|
||||
{ -300.0f, 800.0f, 6800.0f },
|
||||
{ 300.0f, 900.0f, 7200.0f },
|
||||
};
|
||||
static AllRangeAi sTeamAi[4] = { AI360_FOX, AI360_FALCO, AI360_SLIPPY, AI360_PEPPY };
|
||||
static s32 sTeamSpawnTargets[4] = { -1, AI360_10, AI360_10 + 1, AI360_10 + 2 };
|
||||
static s32 sTeamSpawnTargetsKA[4] = { -1, AI360_10 + 11, AI360_10 + 13, AI360_10 + 15 };
|
||||
|
||||
void ActorAllRange_SpawnTeam(void) {
|
||||
Actor* actor;
|
||||
s32 i;
|
||||
@@ -393,14 +377,14 @@ void ActorAllRange_SpawnTeam(void) {
|
||||
if (i == 0) {
|
||||
actor->aiType = AI360_EVENT_HANDLER;
|
||||
} else {
|
||||
actor->obj.pos.x = D_360_800C9A9C[i].x;
|
||||
actor->obj.pos.y = D_360_800C9A9C[i].y;
|
||||
actor->obj.pos.z = D_360_800C9A9C[i].z;
|
||||
actor->aiType = D_360_800C9ACC[i];
|
||||
actor->obj.pos.x = sTeamSpawnPos[i].x;
|
||||
actor->obj.pos.y = sTeamSpawnPos[i].y;
|
||||
actor->obj.pos.z = sTeamSpawnPos[i].z;
|
||||
actor->aiType = sTeamAi[i];
|
||||
if (gCurrentLevel == LEVEL_KATINA) {
|
||||
actor->aiIndex = D_360_800C9AEC[i];
|
||||
actor->aiIndex = sTeamSpawnTargetsKA[i];
|
||||
} else {
|
||||
actor->aiIndex = D_360_800C9ADC[i];
|
||||
actor->aiIndex = sTeamSpawnTargets[i];
|
||||
}
|
||||
actor->state = STATE360_2;
|
||||
actor->unk_0F4.y = 180.0f;
|
||||
@@ -424,6 +408,16 @@ void ActorAllRange_SpawnTeam(void) {
|
||||
}
|
||||
}
|
||||
|
||||
static Vec3f sStarWolfSpawnPos[4] = {
|
||||
{ 9500.0f, 5000.0f, 9500.0f },
|
||||
{ 10000.0f, 5000.0f, 10000.0f },
|
||||
{ 10000.0f, 5000.0f, 9500.0f },
|
||||
{ 9500.0f, 5000.0f, 10000.0f },
|
||||
};
|
||||
static s32 sStarWolfSpawnTargets[4] = { AI360_FOX, AI360_FALCO, AI360_PEPPY, AI360_SLIPPY };
|
||||
static f32 sStarWolfVE2SpawnRot[4] = { 330.0f, 90.0f, 280.0f, 70.0f };
|
||||
s32 gAllRangeSpawnEvent = 96 * 30;
|
||||
|
||||
void ActorAllRange_SpawnStarWolf(void) {
|
||||
Actor* actor;
|
||||
s32 i;
|
||||
@@ -432,12 +426,12 @@ void ActorAllRange_SpawnStarWolf(void) {
|
||||
if (gStarWolfTeamAlive[i] != 0) {
|
||||
Actor_Initialize(actor);
|
||||
actor->obj.status = OBJ_ACTIVE;
|
||||
actor->obj.pos.x = D_360_800C9AFC[i].x;
|
||||
actor->obj.pos.y = D_360_800C9AFC[i].y;
|
||||
actor->obj.pos.z = D_360_800C9AFC[i].z;
|
||||
actor->obj.pos.x = sStarWolfSpawnPos[i].x;
|
||||
actor->obj.pos.y = sStarWolfSpawnPos[i].y;
|
||||
actor->obj.pos.z = sStarWolfSpawnPos[i].z;
|
||||
actor->obj.id = OBJ_ACTOR_ALLRANGE;
|
||||
actor->aiType = i + AI360_WOLF;
|
||||
actor->aiIndex = D_360_800C9B2C[i];
|
||||
actor->aiIndex = sStarWolfSpawnTargets[i];
|
||||
gActors[actor->aiIndex].aiIndex = -1;
|
||||
actor->health = 100;
|
||||
actor->unk_0C9 = 1;
|
||||
@@ -447,7 +441,7 @@ void ActorAllRange_SpawnStarWolf(void) {
|
||||
actor->unk_0F4.x = -20.0f;
|
||||
actor->iwork[11] = 1;
|
||||
if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
actor->obj.rot.z = D_360_800C9B3C[i];
|
||||
actor->obj.rot.z = sStarWolfVE2SpawnRot[i];
|
||||
actor->itemDrop = DROP_SILVER_STAR;
|
||||
}
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
@@ -473,7 +467,7 @@ void ActorAllRange_StarWolfDefeatMesg(u16* msg, RadioCharacterId character) {
|
||||
ActorAllRange_PlayMessage(msg, character);
|
||||
}
|
||||
|
||||
void func_360_8002F69C(Actor* this) {
|
||||
void ActorAllRange_UpdateStarWolfEvents(Actor* this) {
|
||||
Actor* actor;
|
||||
s32 i;
|
||||
|
||||
@@ -484,12 +478,12 @@ void func_360_8002F69C(Actor* this) {
|
||||
Radio_PlayMessage(gMsg_ID_19465, RCID_FOX);
|
||||
}
|
||||
}
|
||||
if (((gAllRangeEventTimer + 100) == (0, D_360_800C9B4C)) && (gCurrentLevel != LEVEL_VENOM_2)) {
|
||||
if ((gAllRangeEventTimer + 100 == (0, gAllRangeSpawnEvent)) && (gCurrentLevel != LEVEL_VENOM_2)) {
|
||||
// fake?
|
||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 30);
|
||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 30);
|
||||
}
|
||||
if (gAllRangeEventTimer == D_360_800C9B4C) {
|
||||
if (gAllRangeEventTimer == gAllRangeSpawnEvent) {
|
||||
ActorAllRange_SpawnStarWolf();
|
||||
this->state = STATE360_3;
|
||||
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_STANDBY;
|
||||
@@ -509,11 +503,11 @@ void func_360_8002F69C(Actor* this) {
|
||||
gPlayer[0].cam.at.y = gActors[AI360_WOLF].obj.pos.y;
|
||||
gPlayer[0].cam.at.z = gActors[AI360_WOLF].obj.pos.z;
|
||||
}
|
||||
if ((gAllRangeEventTimer > D_360_800C9B4C) && (gStarWolfMsgTimer == 0)) {
|
||||
if ((gAllRangeEventTimer > gAllRangeSpawnEvent) && (gStarWolfMsgTimer == 0)) {
|
||||
gAllRangeFrameCount++;
|
||||
for (i = AI360_FALCO, actor = &gActors[AI360_FALCO]; i <= AI360_ANDREW; i++, actor++) {
|
||||
if ((actor->obj.status == OBJ_ACTIVE) && (actor->state == STATE360_2) && (actor->health < 70) &&
|
||||
(actor->timer_0C6 != 0) && (actor->dmgSource == 1)) {
|
||||
(actor->timer_0C6 != 0) && (actor->dmgSource == AI360_FOX + 1)) {
|
||||
if ((gActors[actor->aiIndex].state == STATE360_3) && (gActors[actor->aiIndex].aiType <= AI360_ANDREW)) {
|
||||
gActors[actor->aiIndex].iwork[2] = AI360_FOX;
|
||||
gActors[actor->aiIndex].state = STATE360_2;
|
||||
@@ -560,24 +554,24 @@ void func_360_8002F69C(Actor* this) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_360_8002FB4C(Actor* actor) {
|
||||
Actor* actor2;
|
||||
Actor* actor1;
|
||||
s32 var_a0;
|
||||
s32 j;
|
||||
s32 i;
|
||||
void ActorAllRange_ChooseNewTarget(Actor* actor) {
|
||||
Actor* team;
|
||||
Actor* enemy;
|
||||
s32 alreadyTaken;
|
||||
s32 teamId;
|
||||
s32 enemyId;
|
||||
|
||||
for (i = 10, actor1 = &gActors[10]; i < ARRAY_COUNT(gActors); i++, actor1++) {
|
||||
if ((actor1->obj.status == OBJ_ACTIVE) && (actor1->obj.id == OBJ_ACTOR_ALLRANGE) && (actor1->unk_0B6 == 0) &&
|
||||
(actor1->aiIndex <= -1)) {
|
||||
var_a0 = false;
|
||||
for (j = 1, actor2 = &gActors[1]; j < 4; j++, actor2++) {
|
||||
if ((j != actor->index) && (i == actor2->aiIndex)) {
|
||||
var_a0 = true;
|
||||
for (enemyId = AI360_10, enemy = &gActors[AI360_10]; enemyId < ARRAY_COUNT(gActors); enemyId++, enemy++) {
|
||||
if ((enemy->obj.status == OBJ_ACTIVE) && (enemy->obj.id == OBJ_ACTOR_ALLRANGE) && (enemy->unk_0B6 == 0) &&
|
||||
(enemy->aiIndex <= -1)) {
|
||||
alreadyTaken = false;
|
||||
for (teamId = AI360_FALCO, team = &gActors[AI360_FALCO]; teamId <= AI360_PEPPY; teamId++, team++) {
|
||||
if ((teamId != actor->index) && (enemyId == team->aiIndex)) {
|
||||
alreadyTaken = true;
|
||||
}
|
||||
}
|
||||
if (!var_a0) {
|
||||
actor->aiIndex = i;
|
||||
if (!alreadyTaken) {
|
||||
actor->aiIndex = enemyId;
|
||||
actor->state = STATE360_2;
|
||||
actor->iwork[2] = AI360_FOX;
|
||||
break;
|
||||
@@ -586,29 +580,30 @@ void func_360_8002FB4C(Actor* actor) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_360_8002FC00(Actor* this) {
|
||||
Actor* actor;
|
||||
void ActorAllRange_UpdateEvemyEvents(Actor* this) {
|
||||
Actor* enemy;
|
||||
s32 i;
|
||||
|
||||
for (i = 0, actor = &gActors[10]; i < 50; i++, actor++) {
|
||||
if ((actor->obj.status == OBJ_DYING) && (actor->aiIndex >= AI360_FALCO) && (actor->aiIndex <= AI360_PEPPY)) {
|
||||
Actor* actor2;
|
||||
for (i = 0, enemy = &gActors[AI360_10]; i < 50; i++, enemy++) {
|
||||
if ((enemy->obj.status == OBJ_DYING) && (enemy->aiIndex >= AI360_FALCO) && (enemy->aiIndex <= AI360_PEPPY)) {
|
||||
Actor* enemy2;
|
||||
s32 j;
|
||||
|
||||
for (j = 0, actor2 = &gActors[10]; j < 51; j++, actor2++) {
|
||||
if ((actor2->obj.status == OBJ_ACTIVE) && (actor2->state == STATE360_2) &&
|
||||
(actor2->aiIndex == actor->aiIndex)) {
|
||||
for (j = 0, enemy2 = &gActors[AI360_10]; j <= 50; j++, enemy2++) { // bug? should be <
|
||||
if ((enemy2->obj.status == OBJ_ACTIVE) && (enemy2->state == STATE360_2) &&
|
||||
(enemy2->aiIndex == enemy->aiIndex)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (gTeamShields[actor->aiIndex] > 0) {
|
||||
func_360_8002FB4C(&gActors[actor->aiIndex]);
|
||||
if ((actor->iwork[5] != 0) && (actor->dmgSource == 1) && (gActors[actor->aiIndex].iwork[3] == 0)) {
|
||||
if (gTeamHelpActor == &gActors[actor->aiIndex]) {
|
||||
if (gTeamShields[enemy->aiIndex] > 0) {
|
||||
ActorAllRange_ChooseNewTarget(&gActors[enemy->aiIndex]);
|
||||
if ((enemy->iwork[5] != 0) && (enemy->dmgSource == AI360_FOX + 1) &&
|
||||
(gActors[enemy->aiIndex].iwork[3] == 0)) {
|
||||
if (gTeamHelpActor == &gActors[enemy->aiIndex]) {
|
||||
gTeamHelpActor = NULL;
|
||||
gTeamHelpTimer = 0;
|
||||
}
|
||||
switch (gActors[actor->aiIndex].aiType) {
|
||||
switch (gActors[enemy->aiIndex].aiType) {
|
||||
case AI360_FALCO:
|
||||
ActorAllRange_PlayMessage(gMsg_ID_9160, RCID_FALCO);
|
||||
break;
|
||||
@@ -619,8 +614,8 @@ void func_360_8002FC00(Actor* this) {
|
||||
ActorAllRange_PlayMessage(gMsg_ID_9180, RCID_PEPPY);
|
||||
break;
|
||||
}
|
||||
gActors[actor->aiIndex].iwork[3] = 200;
|
||||
gActors[actor->aiIndex].timer_0C4 = 600;
|
||||
gActors[enemy->aiIndex].iwork[3] = 200;
|
||||
gActors[enemy->aiIndex].timer_0C4 = 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -630,7 +625,7 @@ void func_360_8002FC00(Actor* this) {
|
||||
bool AllRange_SupplyEvent(void) {
|
||||
switch (gCurrentLevel) {
|
||||
case LEVEL_FORTUNA:
|
||||
return gAllRangeEventTimer == D_360_800C9B4C + 2400;
|
||||
return gAllRangeEventTimer == gAllRangeSpawnEvent + 2400;
|
||||
case LEVEL_BOLSE:
|
||||
return gBosses[2].swork[36] == 4;
|
||||
case LEVEL_KATINA:
|
||||
@@ -814,40 +809,40 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
Vec3f sp48;
|
||||
Vec3f sp3C;
|
||||
|
||||
if (this->dmgType != 0) {
|
||||
if (this->dmgType != DMG_NONE) {
|
||||
if (this->aiType == AI360_GREAT_FOX) {
|
||||
this->dmgType = 0;
|
||||
this->dmgType = DMG_NONE;
|
||||
}
|
||||
if ((this->dmgType >= 2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_KATT)) {
|
||||
if ((this->dmgType >= DMG_EXPLOSION) && (this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
|
||||
this->damage = 10;
|
||||
this->timer_0C2 = 10;
|
||||
}
|
||||
if (((this->aiType <= AI360_PEPPY) || (this->aiType == AI360_BILL) || (this->aiType == AI360_KATT)) &&
|
||||
(this->dmgType == 2)) {
|
||||
this->dmgType = 0;
|
||||
(this->dmgType == DMG_EXPLOSION)) {
|
||||
this->dmgType = DMG_NONE;
|
||||
}
|
||||
if ((this->dmgType == 2) && (this->fwork[22] > 0.0f)) {
|
||||
this->dmgType = 0;
|
||||
if ((this->dmgType == DMG_EXPLOSION) && (this->fwork[22] > 0.0f)) {
|
||||
this->dmgType = DMG_NONE;
|
||||
}
|
||||
if (this->fwork[23] > 1.0f) {
|
||||
this->dmgType = 0;
|
||||
this->dmgType = DMG_NONE;
|
||||
}
|
||||
if (this->dmgType != 0) {
|
||||
if (this->dmgType != DMG_NONE) {
|
||||
var_a1 = false;
|
||||
if ((this->unk_0B6 == 3) ||
|
||||
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != OBJ_FREE) &&
|
||||
(this->aiType >= AI360_WOLF)) ||
|
||||
((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_10) &&
|
||||
(this->dmgType == 2))) {
|
||||
this->damage = 0;
|
||||
(this->dmgType == DMG_EXPLOSION))) {
|
||||
this->damage = DMG_NONE;
|
||||
var_a1 = true;
|
||||
if (gCurrentLevel == LEVEL_BOLSE) {
|
||||
this->dmgSource = 0;
|
||||
}
|
||||
}
|
||||
if (this->aiType >= AI360_WOLF) {
|
||||
if (!((this->dmgType == 3) && (this->aiType == AI360_WOLF)) &&
|
||||
!((this->aiType == AI360_MISSILE) && (this->dmgType == 2))) {
|
||||
if (!((this->dmgType == DMG_COLLISION) && (this->aiType == AI360_WOLF)) &&
|
||||
!((this->aiType == AI360_MISSILE) && (this->dmgType == DMG_EXPLOSION))) {
|
||||
this->health -= this->damage;
|
||||
}
|
||||
} else if ((this->aiType <= AI360_PEPPY) && (this->state != STATE360_6)) {
|
||||
@@ -861,8 +856,8 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
this->health = 0;
|
||||
if (this->aiType == AI360_MISSILE) {
|
||||
SectorZ_80199900(this, 1);
|
||||
if (this->dmgSource == 1) {
|
||||
if (gActors[8].obj.status == OBJ_ACTIVE) {
|
||||
if (this->dmgSource == AI360_FOX + 1) {
|
||||
if (gActors[AI360_KATT].obj.status == OBJ_ACTIVE) {
|
||||
Radio_PlayMessage(gMsg_ID_16140, RCID_KATT);
|
||||
}
|
||||
BonusText_Display(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 10);
|
||||
@@ -870,16 +865,16 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
D_ctx_80177850 = 15;
|
||||
} else {
|
||||
switch (this->dmgSource) {
|
||||
case 102:
|
||||
case AI360_FALCO + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_16170, RCID_FALCO);
|
||||
break;
|
||||
case 103:
|
||||
case AI360_SLIPPY + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_16180, RCID_SLIPPY);
|
||||
break;
|
||||
case 104:
|
||||
case AI360_PEPPY + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_16175, RCID_PEPPY);
|
||||
break;
|
||||
case 109:
|
||||
case AI360_KATT + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_16185, RCID_KATT);
|
||||
break;
|
||||
}
|
||||
@@ -925,7 +920,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
if (this->damage >= 20) {
|
||||
this->timer_0BC = 0;
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && (this->dmgSource == 1)) {
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && (this->dmgSource == AI360_FOX + 1)) {
|
||||
if (gKaAllyKillCount < 2) {
|
||||
ActorAllRange_PlayMessage(gMsg_ID_18018, RCID_BILL);
|
||||
}
|
||||
@@ -969,7 +964,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
sStarWolfKillTimer = 150;
|
||||
}
|
||||
switch (this->dmgSource) {
|
||||
case 1:
|
||||
case AI360_FOX + 1:
|
||||
if (this->aiType >= AI360_10) {
|
||||
switch (this->iwork[2]) {
|
||||
case AI360_FALCO:
|
||||
@@ -984,28 +979,28 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 102:
|
||||
case 103:
|
||||
case 104:
|
||||
case AI360_FALCO + NPC_SHOT_ID + 1:
|
||||
case AI360_SLIPPY + NPC_SHOT_ID + 1:
|
||||
case AI360_PEPPY + NPC_SHOT_ID + 1:
|
||||
if ((this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
|
||||
if ((gStarWolfTeamAlive[0] + gStarWolfTeamAlive[1] + gStarWolfTeamAlive[2] +
|
||||
gStarWolfTeamAlive[3]) == 0) {
|
||||
switch (this->dmgSource) {
|
||||
case 102:
|
||||
case AI360_FALCO + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_9438, RCID_FALCO);
|
||||
break;
|
||||
case 103:
|
||||
case AI360_SLIPPY + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_9436, RCID_SLIPPY);
|
||||
break;
|
||||
case 104:
|
||||
case AI360_PEPPY + NPC_SHOT_ID + 1:
|
||||
Radio_PlayMessage(gMsg_ID_9437, RCID_PEPPY);
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
gActors[this->dmgSource - 101].iwork[1] = 80;
|
||||
gActors[this->dmgSource - NPC_SHOT_ID - 1].iwork[1] = 80;
|
||||
}
|
||||
} else {
|
||||
gActors[this->dmgSource - 101].iwork[1] = 80;
|
||||
gActors[this->dmgSource - NPC_SHOT_ID - 1].iwork[1] = 80;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1054,7 +1049,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
this->fwork[12] = sp3C.z;
|
||||
}
|
||||
if ((gRadioState == 0) && (gActors[0].obj.status == OBJ_ACTIVE)) {
|
||||
if (this->dmgType == 3) {
|
||||
if (this->dmgType == DMG_COLLISION) {
|
||||
switch (this->aiType) {
|
||||
case AI360_FALCO:
|
||||
ActorAllRange_PlayMessage(gMsg_ID_20210, RCID_FALCO);
|
||||
@@ -1071,7 +1066,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
}
|
||||
} else if (this->dmgSource <= AI360_PEPPY + 101) {
|
||||
if (this->aiType >= AI360_WOLF) {
|
||||
if (this->dmgSource == 1) {
|
||||
if (this->dmgSource == AI360_FOX + 1) {
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && !gKaKilledAlly) {
|
||||
gKaKilledAlly = true;
|
||||
Radio_PlayMessage(gMsg_ID_18015, RCID_BILL);
|
||||
@@ -1149,7 +1144,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
||||
}
|
||||
}
|
||||
}
|
||||
this->dmgType = 0;
|
||||
this->dmgType = DMG_NONE;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1180,6 +1175,11 @@ bool func_360_80031900(Actor* actor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
static Vec3f sSectorZRetreatPath[6] = {
|
||||
{ 8000.0f, 500.0f, 0.0f }, { 5000.0f, 400.0f, 0.0f }, { 2000.0f, 300.0f, 0.0f },
|
||||
{ -500.0f, 250.0f, 0.0f }, { 0.0f, 250.0f, 0.0f }, { 0.0f, 250.0f, 0.0f },
|
||||
};
|
||||
|
||||
void ActorAllRange_Update(Actor* this) {
|
||||
u8 sp10F;
|
||||
s32 sp108;
|
||||
@@ -1207,8 +1207,8 @@ void ActorAllRange_Update(Actor* this) {
|
||||
Vec3f spA8;
|
||||
Vec3f sp9C;
|
||||
Vec3f sp90;
|
||||
Vec3f sp84 = D_360_800C9B98;
|
||||
Vec3f sp78 = D_360_800C9BA4;
|
||||
Vec3f sp84 = { 60.0f, 0.0f, -170.0f };
|
||||
Vec3f sp78 = { -60.0f, 0.0f, -170.0f };
|
||||
s32 pad1;
|
||||
s32 pad2;
|
||||
s32 pad3;
|
||||
@@ -1380,11 +1380,11 @@ void ActorAllRange_Update(Actor* this) {
|
||||
gTeamShields[this->aiType] = -1;
|
||||
gTeamDamage[this->aiType] = 0;
|
||||
if (gCurrentLevel == LEVEL_SECTOR_Z) {
|
||||
this->fwork[4] = D_360_800C9B50[this->unk_046].x;
|
||||
this->fwork[5] = D_360_800C9B50[this->unk_046].y;
|
||||
this->fwork[6] = D_360_800C9B50[this->unk_046].z;
|
||||
if ((fabsf(this->obj.pos.x - D_360_800C9B50[this->unk_046].x) < 800.0f) &&
|
||||
(fabsf(this->obj.pos.z - D_360_800C9B50[this->unk_046].z) < 800.0f)) {
|
||||
this->fwork[4] = sSectorZRetreatPath[this->unk_046].x;
|
||||
this->fwork[5] = sSectorZRetreatPath[this->unk_046].y;
|
||||
this->fwork[6] = sSectorZRetreatPath[this->unk_046].z;
|
||||
if ((fabsf(this->obj.pos.x - sSectorZRetreatPath[this->unk_046].x) < 800.0f) &&
|
||||
(fabsf(this->obj.pos.z - sSectorZRetreatPath[this->unk_046].z) < 800.0f)) {
|
||||
this->unk_046++;
|
||||
if (this->unk_046 >= 4) {
|
||||
Object_Kill(&this->obj, this->sfxSource);
|
||||
@@ -1751,7 +1751,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
(gActors[this->aiIndex].obj.status == OBJ_FREE))) {
|
||||
this->state = STATE360_3;
|
||||
if (gCurrentLevel == LEVEL_BOLSE) {
|
||||
func_360_8002FB4C(this);
|
||||
ActorAllRange_ChooseNewTarget(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2019,23 +2019,23 @@ void ActorAllRange_Update(Actor* this) {
|
||||
if (Rand_ZeroOne() < 0.8f) {
|
||||
spA8.x = 60.0f;
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
|
||||
func_enmy2_8006EEFC(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
|
||||
this->obj.pos.y + sp9C.y + (sp90.y * 1.5f),
|
||||
this->obj.pos.z + sp9C.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x,
|
||||
this->obj.rot.y, this->obj.rot.z);
|
||||
Actor_SpawnPlayerLaser(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
|
||||
this->obj.pos.y + sp9C.y + (sp90.y * 1.5f),
|
||||
this->obj.pos.z + sp9C.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z,
|
||||
this->obj.rot.x, this->obj.rot.y, this->obj.rot.z);
|
||||
}
|
||||
if (Rand_ZeroOne() < 0.8f) {
|
||||
spA8.x = -60.0f;
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
|
||||
func_enmy2_8006EEFC(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
|
||||
this->obj.pos.y + sp9C.y + (sp90.y * 1.5f),
|
||||
this->obj.pos.z + sp9C.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x,
|
||||
this->obj.rot.y, this->obj.rot.z);
|
||||
Actor_SpawnPlayerLaser(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
|
||||
this->obj.pos.y + sp9C.y + (sp90.y * 1.5f),
|
||||
this->obj.pos.z + sp9C.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z,
|
||||
this->obj.rot.x, this->obj.rot.y, this->obj.rot.z);
|
||||
}
|
||||
} else {
|
||||
func_enmy2_8006EEFC(this->aiType, this->obj.pos.x + (sp90.x * 1.5f), this->obj.pos.y + (sp90.y * 1.5f),
|
||||
this->obj.pos.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x,
|
||||
this->obj.rot.y, this->obj.rot.z);
|
||||
Actor_SpawnPlayerLaser(this->aiType, this->obj.pos.x + (sp90.x * 1.5f), this->obj.pos.y + (sp90.y * 1.5f),
|
||||
this->obj.pos.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x,
|
||||
this->obj.rot.y, this->obj.rot.z);
|
||||
}
|
||||
}
|
||||
ActorAllRange_ApplyDamage(this);
|
||||
@@ -2096,7 +2096,7 @@ void ActorAllRange_Update(Actor* this) {
|
||||
func_effect_8007BFFC(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 0.0f, 0.0f, 0.0f, 5.0f, 15);
|
||||
func_effect_8007A6F0(&this->obj.pos, 0x2903A008);
|
||||
} else {
|
||||
this->dmgType = 1;
|
||||
this->dmgType = DMG_BEAM;
|
||||
this->damage = 10;
|
||||
this->health = 0;
|
||||
ActorAllRange_ApplyDamage(this);
|
||||
|
||||
+99
-97
File diff suppressed because it is too large
Load Diff
@@ -78,10 +78,10 @@ UNK_TYPE F_80177DE8;
|
||||
s32 gGameFrameCount;
|
||||
s32 gObjectLoadIndex;
|
||||
s32 gPrevEventActorIndex;
|
||||
s32 D_ctx_80177E78;
|
||||
s32 gFormationLeaderIndex;
|
||||
s32 gRingPassCount;
|
||||
Vec3f D_ctx_80177E88;
|
||||
Vec3f D_ctx_80177F10;
|
||||
Vec3f gFormationInitRot;
|
||||
Vec3f gFormationInitPos;
|
||||
UNK_TYPE F_80178020;
|
||||
s32 D_ctx_8017812C;
|
||||
LevelId gCurrentLevel;
|
||||
|
||||
@@ -401,7 +401,7 @@ void func_demo_80049968(Actor* actor, s32 arg1) {
|
||||
actor->obj.id = OBJ_ACTOR_CUTSCENE;
|
||||
actor->obj.pos.x = D_demo_800C9FD0[arg1];
|
||||
actor->obj.pos.y = D_demo_800C9FE0[arg1];
|
||||
actor->obj.pos.z = D_demo_800C9FF0[arg1] + ((void) 0, gPlayer)[0].trueZpos;
|
||||
actor->obj.pos.z = D_demo_800C9FF0[arg1] + gPlayer[0].trueZpos;
|
||||
actor->fwork[0] = D_demo_800CA000[arg1];
|
||||
actor->fwork[1] = D_demo_800CA010[arg1];
|
||||
actor->unk_0B6 = D_demo_800CA030[arg1];
|
||||
|
||||
@@ -92,7 +92,7 @@ f32 gWarpZoneEvent93Hitbox[] = {
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
ObjectInfo D_edata_800CC124[0x190] = {
|
||||
ObjectInfo gObjectInfo[] = {
|
||||
/* OBJ_SCENERY_0, */ {(void*) D_CO_6015F00, 0, (ObjectFunc) NULL, D_CO_603E3E0, 800.0f, 0, 0, 39, 0, 0.0f, 0 },
|
||||
/* OBJ_SCENERY_1, */ {(void*) D_CO_602E9E0, 0, (ObjectFunc) NULL, gNoHitbox, 2000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
/* OBJ_SCENERY_2, */ {(void*) D_CO_601BEC0, 0, (ObjectFunc) NULL, gNoHitbox, 3000.0f, 0, 0, 40, 0, 0.0f, 0 },
|
||||
|
||||
@@ -98,7 +98,7 @@ void Actor202_Draw(Actor202* this) {
|
||||
Animation_DrawSkeleton(1, D_ME_601E9D0, sp30, NULL, Actor202_PostLimbDraw, &this->index, &gIdentityMatrix);
|
||||
}
|
||||
|
||||
void MeteoTunnel_Draw(Scenery_39* this) {
|
||||
void MeteoTunnel_Draw(MeteoTunnel* this) {
|
||||
gSPDisplayList(gMasterDisp++, D_ME_601AE40);
|
||||
}
|
||||
|
||||
@@ -638,13 +638,13 @@ void func_edisplay_8005BAB4(ObjectId objId, s32 index) {
|
||||
case OBJ_ACTOR_TEAM_BOSS:
|
||||
case OBJ_ACTOR_EVENT:
|
||||
switch (gActors[index].unk_0B4) {
|
||||
case EINFO_3:
|
||||
case EVID_3:
|
||||
Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, MTXF_APPLY);
|
||||
Matrix_RotateX(gGfxMatrix, M_PI / 2, MTXF_APPLY);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_102A010);
|
||||
break;
|
||||
case EINFO_81:
|
||||
case EVID_81:
|
||||
RCP_SetupDL(&gMasterDisp, 0x30);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
|
||||
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255);
|
||||
@@ -1001,14 +1001,14 @@ void Actor_DrawOnRails(Actor* this) {
|
||||
Zoness_80190F08(this);
|
||||
return;
|
||||
}
|
||||
if ((this->obj.id == OBJ_ACTOR_EVENT) && (this->unk_0B4 == EINFO_200)) {
|
||||
if ((this->obj.id == OBJ_ACTOR_EVENT) && (this->unk_0B4 == EVID_200)) {
|
||||
Actor194_Draw(this);
|
||||
} else {
|
||||
if (this->info.unk_19 != 0) {
|
||||
this->obj.pos.y += gCameraShakeY;
|
||||
func_edisplay_8005D008(&this->obj, this->info.drawType);
|
||||
this->obj.pos.y -= gCameraShakeY;
|
||||
} else if ((this->obj.id == OBJ_ACTOR_EVENT) && (this->unk_0B4 != EINFO_31)) {
|
||||
} else if ((this->obj.id == OBJ_ACTOR_EVENT) && (this->unk_0B4 != EVID_31)) {
|
||||
func_edisplay_8005D3CC(&this->obj, this->vwork[29].x, this->vwork[29].y,
|
||||
this->vwork[29].z + this->unk_0F4.z, this->info.drawType);
|
||||
} else {
|
||||
|
||||
+8
-14
@@ -2407,14 +2407,11 @@ void func_effect_8007E6B8(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPo
|
||||
effect->obj.rot.z = RAND_FLOAT(360.0f);
|
||||
effect->unk_4A = 180;
|
||||
effect->scale2 = 5.0f;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
||||
} else if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
||||
AUDIO_PLAY_SFX(0x31000025, effect->sfxSource, 4);
|
||||
return;
|
||||
} else {
|
||||
AUDIO_PLAY_SFX(0x29002002, effect->sfxSource, 4);
|
||||
}
|
||||
AUDIO_PLAY_SFX(0x29002002, effect->sfxSource, 4);
|
||||
}
|
||||
|
||||
void func_effect_8007E93C(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPos, f32 speed) {
|
||||
@@ -2464,14 +2461,11 @@ void func_effect_8007E93C(Effect* effect, u32 objId, f32 xPos, f32 yPos, f32 zPo
|
||||
effect->obj.rot.z = RAND_FLOAT(360.0f);
|
||||
effect->unk_4A = 180;
|
||||
effect->scale2 = 5.0f;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
||||
} else if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
||||
AUDIO_PLAY_SFX(0x31000025, effect->sfxSource, 4);
|
||||
return;
|
||||
} else {
|
||||
AUDIO_PLAY_SFX(0x29002002, effect->sfxSource, 4);
|
||||
}
|
||||
AUDIO_PLAY_SFX(0x29002002, effect->sfxSource, 4);
|
||||
}
|
||||
|
||||
void func_effect_8007EBB8(Effect* effect, ObjectId objId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel,
|
||||
@@ -2825,13 +2819,13 @@ bool func_effect_8007FD84(Effect* effect) {
|
||||
(fabsf(actor->obj.pos.z - effect->obj.pos.z) < 100.0f) &&
|
||||
(fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) &&
|
||||
(fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) {
|
||||
actor->dmgType = 1;
|
||||
actor->dmgType = DMG_BEAM;
|
||||
actor->dmgPart = 0;
|
||||
actor->damage = 10;
|
||||
if (effect->obj.id == OBJ_EFFECT_354) {
|
||||
actor->damage = 30;
|
||||
}
|
||||
actor->dmgSource = 100;
|
||||
actor->dmgSource = CS_SHOT_ID;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
+28
-28
@@ -72,7 +72,7 @@ u32 gWarpRingSfx[] = {
|
||||
0x19404038, 0x19404139, 0x1940423A, 0x1940433B, 0x1940443C, 0x1940453D, 0x1940463E, 0x1940463E, 0x1940463E,
|
||||
};
|
||||
|
||||
void func_enmy_80060F30(f32* pos, u32 sfxId, s32 arg2) {
|
||||
void func_enmy_80060F30(f32* pos, u32 sfxId, s32 shotSource) {
|
||||
PRINTF("CHIME SET \n");
|
||||
PRINTF("BOMB SET 1\n");
|
||||
PRINTF("BOMB SET 2\n");
|
||||
@@ -81,7 +81,7 @@ void func_enmy_80060F30(f32* pos, u32 sfxId, s32 arg2) {
|
||||
if (!gVersusMode) {
|
||||
AUDIO_PLAY_SFX(sfxId, gDefaultSfxSource, 4);
|
||||
} else {
|
||||
AUDIO_PLAY_SFX(sfxId, pos, arg2);
|
||||
AUDIO_PLAY_SFX(sfxId, pos, shotSource);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -132,8 +132,8 @@ bool func_enmy_80061148(Vec3f* arg0, f32 arg1) {
|
||||
}
|
||||
|
||||
void Object_SetInfo(ObjectInfo* info, u32 objId) {
|
||||
*info = D_edata_800CC124[objId];
|
||||
info->hitbox = SEGMENTED_TO_VIRTUAL(D_edata_800CC124[objId].hitbox);
|
||||
*info = gObjectInfo[objId];
|
||||
info->hitbox = SEGMENTED_TO_VIRTUAL(gObjectInfo[objId].hitbox);
|
||||
if (gLevelMode == LEVELMODE_UNK_2) {
|
||||
info->cullDistance += 200.0f;
|
||||
}
|
||||
@@ -384,7 +384,7 @@ void ActorEvent_Load(Actor* actor, ObjectInit* objInit, s32 index) {
|
||||
actor->unk_0F4.z = objInit->rot.z;
|
||||
actor->obj.id = OBJ_ACTOR_EVENT;
|
||||
actor->timer_0C2 = 10;
|
||||
actor->unk_0B4 = EINFO_FFF;
|
||||
actor->unk_0B4 = EVID_FFF;
|
||||
actor->aiType = objInit->id - ACTOR_EVENT_ID;
|
||||
|
||||
Object_SetInfo(&actor->info, actor->obj.id);
|
||||
@@ -393,14 +393,14 @@ void ActorEvent_Load(Actor* actor, ObjectInit* objInit, s32 index) {
|
||||
actor->iwork[1] = gPrevEventActorIndex;
|
||||
actor->iwork[10] = gActors[gPrevEventActorIndex].aiType;
|
||||
actor->fwork[22] = gArwingSpeed;
|
||||
Matrix_RotateZ(gCalcMatrix, -D_ctx_80177E88.z * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, -D_ctx_80177E88.x * M_DTOR, MTXF_APPLY);
|
||||
Matrix_RotateY(gCalcMatrix, -D_ctx_80177E88.y * M_DTOR, MTXF_APPLY);
|
||||
sp24.x = actor->obj.pos.x - D_ctx_80177F10.x;
|
||||
sp24.y = actor->obj.pos.y - D_ctx_80177F10.y;
|
||||
sp24.z = actor->obj.pos.z - D_ctx_80177F10.z;
|
||||
Matrix_RotateZ(gCalcMatrix, -gFormationInitRot.z * M_DTOR, MTXF_NEW);
|
||||
Matrix_RotateX(gCalcMatrix, -gFormationInitRot.x * M_DTOR, MTXF_APPLY);
|
||||
Matrix_RotateY(gCalcMatrix, -gFormationInitRot.y * M_DTOR, MTXF_APPLY);
|
||||
sp24.x = actor->obj.pos.x - gFormationInitPos.x;
|
||||
sp24.y = actor->obj.pos.y - gFormationInitPos.y;
|
||||
sp24.z = actor->obj.pos.z - gFormationInitPos.z;
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]);
|
||||
actor->iwork[9] = D_ctx_80177E78;
|
||||
actor->iwork[9] = gFormationLeaderIndex;
|
||||
gPrevEventActorIndex = index;
|
||||
Actor_Update(actor);
|
||||
}
|
||||
@@ -902,7 +902,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
|
||||
} else if (actor->scale < 0.0f) {
|
||||
if (Object_CheckHitboxCollision(pos, actor->info.hitbox, &actor->obj, actor->vwork[29].x,
|
||||
actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z)) {
|
||||
actor->dmgType = 1;
|
||||
actor->dmgType = DMG_BEAM;
|
||||
actor->damage = 10;
|
||||
actor->dmgPart = -1;
|
||||
actor->hitPos.x = pos->x;
|
||||
@@ -912,7 +912,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
|
||||
}
|
||||
} else if ((mode != 2) && (mode != 3)) {
|
||||
if (Object_CheckSingleHitbox(pos, actor->info.hitbox, &actor->obj.pos)) {
|
||||
actor->dmgType = 1;
|
||||
actor->dmgType = DMG_BEAM;
|
||||
actor->damage = 10;
|
||||
actor->dmgPart = -1;
|
||||
if (!(((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->iwork[12] != 0)) ||
|
||||
@@ -1547,9 +1547,9 @@ void func_enmy_800656D4(Actor* actor) {
|
||||
if ((fabsf(actor->fwork[27] - actor->obj.pos.x) < 60.0f) &&
|
||||
(fabsf(actor->fwork[28] - actor->obj.pos.y) < 60.0f) &&
|
||||
(fabsf(actor->fwork[29] - actor->obj.pos.z) < 60.0f) && ((spC4 == 2) || (spC4 == 3) || (spC4 == 4))) {
|
||||
gActors[spC4].dmgType = 1;
|
||||
gActors[spC4].dmgType = DMG_BEAM;
|
||||
gActors[spC4].damage = 20;
|
||||
gActors[spC4].dmgSource = 2;
|
||||
gActors[spC4].dmgSource = DMG_SRC_2;
|
||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
||||
Object_Kill(&actor->obj, actor->sfxSource);
|
||||
@@ -1583,11 +1583,11 @@ void func_enmy_800656D4(Actor* actor) {
|
||||
sp8C.x = actor->vel.x;
|
||||
sp8C.y = actor->vel.y;
|
||||
sp8C.z = actor->vel.z;
|
||||
if ((Object_CheckCollision(actor->index, &actor->obj.pos, &sp8C, 1) != 0) || (actor->dmgType != 0) ||
|
||||
if ((Object_CheckCollision(actor->index, &actor->obj.pos, &sp8C, 1) != 0) || (actor->dmgType != DMG_NONE) ||
|
||||
(actor->obj.pos.y < (gGroundHeight + 10.0f)) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_LEVEL_COMPLETE)) {
|
||||
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f);
|
||||
Object_Kill(&actor->obj, actor->sfxSource);
|
||||
if (actor->dmgType != 0) {
|
||||
if (actor->dmgType != DMG_NONE) {
|
||||
actor->itemDrop = DROP_SILVER_RING_50p;
|
||||
if ((gCurrentLevel == LEVEL_CORNERIA)) {
|
||||
if (gLevelMode == LEVELMODE_ALL_RANGE) {
|
||||
@@ -1649,12 +1649,12 @@ void Actor_Despawn(Actor* actor) {
|
||||
s32 i;
|
||||
|
||||
if (gVersusMode) {
|
||||
if ((actor->dmgSource > 0) && (actor->dmgSource < 5) &&
|
||||
if ((actor->dmgSource >= 1) && (actor->dmgSource < 4 + 1) &&
|
||||
!((D_versus_80178768[0] == 0) && (D_versus_80178768[1] == 0) && (D_versus_80178768[2] == 0))) {
|
||||
gPlayerScores[actor->dmgSource - 1] += actor->info.bonus;
|
||||
}
|
||||
} else if (!((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->unk_0B6 == 1))) {
|
||||
if ((actor->dmgSource == 1) && (actor->info.bonus != 0)) {
|
||||
if ((actor->dmgSource == AI360_FOX + 1) && (actor->info.bonus != 0)) {
|
||||
gHitCount += actor->info.bonus;
|
||||
D_ctx_80177850 = 15;
|
||||
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gDropHitCountItem != 0)) {
|
||||
@@ -1751,10 +1751,10 @@ void func_enmy_8006654C(Actor* actor) {
|
||||
break;
|
||||
}
|
||||
actor->scale = 0.8f;
|
||||
if (actor->dmgType != 0) {
|
||||
if (actor->dmgType != DMG_NONE) {
|
||||
actor->obj.status = OBJ_DYING;
|
||||
actor->vel.y = RAND_FLOAT(5.0f) + 6.0f;
|
||||
if (actor->dmgType == 2) {
|
||||
if (actor->dmgType == DMG_EXPLOSION) {
|
||||
actor->vel.y = -2.0f;
|
||||
}
|
||||
actor->vel.z = -15.0f;
|
||||
@@ -1798,7 +1798,7 @@ void func_enmy_800669A0(Actor* actor) {
|
||||
}
|
||||
} else {
|
||||
actor->obj.rot.y += 5.0f;
|
||||
if (actor->dmgType != 0) {
|
||||
if (actor->dmgType != DMG_NONE) {
|
||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y + 130.0f, actor->obj.pos.z, 8.0f);
|
||||
func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y + 130.0f, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 4.0f,
|
||||
5);
|
||||
@@ -2003,8 +2003,8 @@ void ActorSupplies_Update(ActorSupplies* this) {
|
||||
Math_SmoothStepToF(&this->obj.pos.y, 300.0f, 0.05f, 50.0f, 0.01f);
|
||||
}
|
||||
}
|
||||
if (this->dmgType != 0) {
|
||||
this->dmgType = 0;
|
||||
if (this->dmgType != DMG_NONE) {
|
||||
this->dmgType = DMG_NONE;
|
||||
this->health -= this->damage;
|
||||
if (this->health <= 0) {
|
||||
func_effect_8007A6F0(&this->obj.pos, 0x2903A008);
|
||||
@@ -2502,7 +2502,7 @@ void Actor_Move(Actor* actor) {
|
||||
var_fv0 = 4000.0f;
|
||||
|
||||
if ((actor->obj.id == OBJ_ACTOR_236) || (gCurrentLevel == LEVEL_MACBETH) ||
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_56))) {
|
||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EVID_56))) {
|
||||
var_fv0 = 8000.0f;
|
||||
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ENTER_WARP_ZONE) {
|
||||
var_fv0 = 100000.0f;
|
||||
@@ -2523,9 +2523,9 @@ void Actor_Move(Actor* actor) {
|
||||
gActor194Status[actor->unk_046] = 0;
|
||||
break;
|
||||
case OBJ_ACTOR_EVENT:
|
||||
if ((actor->unk_0B4 >= EINFO_200) && (actor->unk_0B4 < EINFO_300)) {
|
||||
if ((actor->unk_0B4 >= EVID_200) && (actor->unk_0B4 < EVID_300)) {
|
||||
gActor194Status[actor->unk_046] = 0;
|
||||
} else if ((actor->unk_0B4 == EINFO_38) && (actor->unk_046 != 2)) {
|
||||
} else if ((actor->unk_0B4 == EVID_38) && (actor->unk_046 != 2)) {
|
||||
gRingPassCount = -1;
|
||||
}
|
||||
break;
|
||||
|
||||
+269
-268
File diff suppressed because it is too large
Load Diff
+10
-10
@@ -2460,7 +2460,7 @@ s32 func_hud_8008B774(void) {
|
||||
(gCurrentLevel == LEVEL_SECTOR_Y))) {
|
||||
for (i = 0; i < 60; i++) {
|
||||
if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].iwork[12] == temp)) {
|
||||
if ((gActors[i].unk_0B4 == EINFO_2) || (gActors[i].unk_0B4 == EINFO_43) ||
|
||||
if ((gActors[i].unk_0B4 == EVID_2) || (gActors[i].unk_0B4 == EVID_43) ||
|
||||
((gActors[i].obj.id == OBJ_ACTOR_TEAM_BOSS) &&
|
||||
((gActors[i].aiType == AI360_FALCO) || (gActors[i].aiType == AI360_SLIPPY) ||
|
||||
(gActors[i].aiType == AI360_PEPPY)))) {
|
||||
@@ -4327,9 +4327,9 @@ bool func_hud_80091DF4(Actor* actor) {
|
||||
sp44.y = 0.0f;
|
||||
sp44.z = 100.0f;
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
|
||||
func_enmy2_8006EEFC(actor->aiType, actor->obj.pos.x + (sp38.x * 1.5), actor->obj.pos.y + (sp38.y * 1.5),
|
||||
actor->obj.pos.z + (sp38.z * 1.5), sp38.x, sp38.y, sp38.z, actor->obj.rot.x,
|
||||
actor->obj.rot.y, actor->obj.rot.z);
|
||||
Actor_SpawnPlayerLaser(actor->aiType, actor->obj.pos.x + (sp38.x * 1.5), actor->obj.pos.y + (sp38.y * 1.5),
|
||||
actor->obj.pos.z + (sp38.z * 1.5), sp38.x, sp38.y, sp38.z, actor->obj.rot.x,
|
||||
actor->obj.rot.y, actor->obj.rot.z);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -4339,9 +4339,9 @@ bool func_hud_80091F00(Actor* actor) {
|
||||
Vec3f sp40;
|
||||
Vec3f sp34;
|
||||
|
||||
actor->dmgType = 0;
|
||||
actor->dmgType = DMG_NONE;
|
||||
|
||||
if ((actor->state == 3) || (temp_v0 == 2)) {
|
||||
if ((actor->state == 3) || (temp_v0 == DMG_EXPLOSION)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -4376,7 +4376,7 @@ bool func_hud_80091F00(Actor* actor) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((actor->dmgType == 3) && (actor->dmgSource == 1)) {
|
||||
if ((actor->dmgType == DMG_COLLISION) && (actor->dmgSource == AI360_FOX + 1)) {
|
||||
switch (actor->aiType) {
|
||||
case AI360_FALCO:
|
||||
Radio_PlayMessage(gMsg_ID_20210, RCID_FALCO);
|
||||
@@ -4390,7 +4390,7 @@ bool func_hud_80091F00(Actor* actor) {
|
||||
}
|
||||
}
|
||||
|
||||
if ((actor->dmgType != 3) && (actor->dmgSource == 1)) {
|
||||
if ((actor->dmgType != DMG_COLLISION) && (actor->dmgSource == AI360_FOX + 1)) {
|
||||
switch (actor->aiType) {
|
||||
case AI360_FALCO:
|
||||
Radio_PlayMessage(gMsg_ID_20060, RCID_FALCO);
|
||||
@@ -4404,7 +4404,7 @@ bool func_hud_80091F00(Actor* actor) {
|
||||
}
|
||||
}
|
||||
|
||||
if ((actor->dmgSource == 2) || (actor->dmgSource == 100)) {
|
||||
if ((actor->dmgSource == DMG_SRC_2) || (actor->dmgSource == DMG_SRC_100)) {
|
||||
switch (actor->aiType) {
|
||||
case AI360_FALCO:
|
||||
Radio_PlayMessage(gMsg_ID_20030, RCID_FALCO);
|
||||
@@ -4705,7 +4705,7 @@ void ActorTeamBoss_Update(ActorTeamBoss* this) {
|
||||
func_hud_80091B90(this);
|
||||
func_hud_80091DF4(this);
|
||||
|
||||
if (this->dmgType != 0) {
|
||||
if (this->dmgType != DMG_NONE) {
|
||||
func_hud_80091F00(this);
|
||||
}
|
||||
|
||||
|
||||
+13
-13
@@ -655,9 +655,9 @@ void Play_ClearObjectData(void) {
|
||||
PlayerShot_Initialize(&gPlayerShots[i]);
|
||||
}
|
||||
D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C =
|
||||
gPrevEventActorIndex = D_ctx_80177E78 = gRingPassCount = 0;
|
||||
D_ctx_80177F10.x = D_ctx_80177F10.y = D_ctx_80177F10.z = D_ctx_80177E88.x = D_ctx_80177E88.y = D_ctx_80177E88.z =
|
||||
0.0f;
|
||||
gPrevEventActorIndex = gFormationLeaderIndex = gRingPassCount = 0;
|
||||
gFormationInitPos.x = gFormationInitPos.y = gFormationInitPos.z = gFormationInitRot.x = gFormationInitRot.y =
|
||||
gFormationInitRot.z = 0.0f;
|
||||
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
|
||||
gTeamArrowsViewPos[i].x = gTeamArrowsViewPos[i].y = gTeamArrowsViewPos[i].z = 100.0f;
|
||||
}
|
||||
@@ -1914,20 +1914,20 @@ void func_play_800A8BA4(Player* player) {
|
||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||
}
|
||||
} else if (actor->obj.id == OBJ_ACTOR_EVENT) {
|
||||
if (actor->unk_0B4 == EINFO_42) {
|
||||
if (actor->unk_0B4 == EVID_42) {
|
||||
temp_v0 =
|
||||
func_play_800A8304(player, ACTOR_EVENT_ID, actor->obj.pos.x, actor->obj.pos.y,
|
||||
actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z);
|
||||
if (temp_v0 != 0) {
|
||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||
}
|
||||
} else if (actor->unk_0B4 == EINFO_63) {
|
||||
} else if (actor->unk_0B4 == EVID_63) {
|
||||
spfD4.x = fabsf(actor->obj.pos.x - player->pos.x);
|
||||
spfD4.y = fabsf(actor->obj.pos.y - player->pos.y);
|
||||
spfD4.z = fabsf(actor->obj.pos.z - player->trueZpos);
|
||||
if ((VEC3F_MAG(&spfD4)) < 900.0f) {
|
||||
Player_ApplyDamage(player, 0, actor->info.damage);
|
||||
actor->dmgType = 3;
|
||||
actor->dmgType = DMG_COLLISION;
|
||||
}
|
||||
} else {
|
||||
temp_v0 = func_play_800A7974(player, actor->info.hitbox, &sp98, actor->obj.pos.x,
|
||||
@@ -1935,7 +1935,7 @@ void func_play_800A8BA4(Player* player) {
|
||||
actor->obj.rot.y, actor->obj.rot.z, actor->vwork[29].x,
|
||||
actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z);
|
||||
if (temp_v0 != 0) {
|
||||
if ((temp_v0 < 0) && (actor->unk_0B4 == EINFO_38)) {
|
||||
if ((temp_v0 < 0) && (actor->unk_0B4 == EVID_38)) {
|
||||
actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_SX_6032328);
|
||||
if (gRingPassCount >= 0) {
|
||||
actor->unk_046 = 2;
|
||||
@@ -1956,7 +1956,7 @@ void func_play_800A8BA4(Player* player) {
|
||||
}
|
||||
} else {
|
||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||
actor->dmgType = 3;
|
||||
actor->dmgType = DMG_COLLISION;
|
||||
actor->dmgSource = player->num + 1;
|
||||
}
|
||||
}
|
||||
@@ -1967,7 +1967,7 @@ void func_play_800A8BA4(Player* player) {
|
||||
actor->fwork[8] + actor->obj.pos.y + 25.0f, actor->obj.pos.z,
|
||||
actor->fwork[29], actor->fwork[26], actor->obj.rot.z, 0.0f, 0.0f, 0.0f);
|
||||
if (temp_v0 != 0) {
|
||||
actor->dmgType = 3;
|
||||
actor->dmgType = DMG_COLLISION;
|
||||
if (actor->info.damage) {
|
||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||
} else {
|
||||
@@ -1988,7 +1988,7 @@ void func_play_800A8BA4(Player* player) {
|
||||
player->whooshTimer = 4;
|
||||
}
|
||||
} else {
|
||||
actor->dmgType = 3;
|
||||
actor->dmgType = DMG_COLLISION;
|
||||
if (actor->obj.id == OBJ_ACTOR_190) {
|
||||
actor->dmgType = -1;
|
||||
}
|
||||
@@ -2764,7 +2764,7 @@ void func_play_800AC290(Player* player, PlayerShot* shot, f32 arg2, f32 arg3, Pl
|
||||
shot->unk_64 = 30;
|
||||
}
|
||||
}
|
||||
shot->playerNum = player->num;
|
||||
shot->sourceId = player->num;
|
||||
}
|
||||
|
||||
void func_play_800AC650(Player* player, PlayerShot* shot, PlayerShotId shotId, f32 speed) {
|
||||
@@ -2815,7 +2815,7 @@ void func_play_800AC650(Player* player, PlayerShot* shot, PlayerShotId shotId, f
|
||||
shot->unk_64 = 40;
|
||||
shot->obj.id = shotId;
|
||||
|
||||
shot->playerNum = player->num;
|
||||
shot->sourceId = player->num;
|
||||
if (shotId == PLAYERSHOT_8) {
|
||||
if (speed <= 65.0f) {
|
||||
shot->unk_5C = 1;
|
||||
@@ -2940,7 +2940,7 @@ void func_play_800ACDC0(Player* player, PlayerShot* shot, PlayerShotId shotId) {
|
||||
shot->unk_64 = 30;
|
||||
shot->unk_58 = 1;
|
||||
|
||||
shot->playerNum = player->num;
|
||||
shot->sourceId = player->num;
|
||||
}
|
||||
|
||||
void func_play_800AD094(Player* player) {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user