mirror of
https://github.com/HarbourMasters/Starship.git
synced 2025-01-23 21:45:00 +03:00
Event opcodes documented, more all range stuff (#229)
* stuff * Torch1 * dark link
This commit is contained in:
parent
77060ba506
commit
9303fba359
6
.vscode/settings.json
vendored
6
.vscode/settings.json
vendored
@ -137,7 +137,11 @@
|
|||||||
"sf64mesg.h": "c",
|
"sf64mesg.h": "c",
|
||||||
"sf64audio_external.h": "c",
|
"sf64audio_external.h": "c",
|
||||||
"audioseq_cmd.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": ""
|
"C_Cpp_Runner.msvcBatchPath": ""
|
||||||
}
|
}
|
@ -76,10 +76,10 @@ extern UNK_TYPE F_80177DE8;
|
|||||||
extern s32 gGameFrameCount;
|
extern s32 gGameFrameCount;
|
||||||
extern s32 gObjectLoadIndex;
|
extern s32 gObjectLoadIndex;
|
||||||
extern s32 gPrevEventActorIndex;
|
extern s32 gPrevEventActorIndex;
|
||||||
extern s32 D_ctx_80177E78;
|
extern s32 gFormationLeaderIndex;
|
||||||
extern s32 gRingPassCount;
|
extern s32 gRingPassCount;
|
||||||
extern Vec3f D_ctx_80177E88;
|
extern Vec3f gFormationInitRot;
|
||||||
extern Vec3f D_ctx_80177F10;
|
extern Vec3f gFormationInitPos;
|
||||||
extern UNK_TYPE F_80178020;
|
extern UNK_TYPE F_80178020;
|
||||||
extern s32 D_ctx_8017812C;
|
extern s32 D_ctx_8017812C;
|
||||||
extern LevelId gCurrentLevel;
|
extern LevelId gCurrentLevel;
|
||||||
|
@ -24,8 +24,8 @@ void AllRange_ClearRadio(void);
|
|||||||
void func_360_8002EE64(Actor* this);
|
void func_360_8002EE64(Actor* this);
|
||||||
void ActorAllRange_SpawnTeam(void);
|
void ActorAllRange_SpawnTeam(void);
|
||||||
void ActorAllRange_PlayMessage(u16* msg, RadioCharacterId character);
|
void ActorAllRange_PlayMessage(u16* msg, RadioCharacterId character);
|
||||||
void func_360_8002F69C(Actor*);
|
void ActorAllRange_UpdateStarWolfEvents(Actor*);
|
||||||
void func_360_8002FC00(Actor*);
|
void ActorAllRange_UpdateEvemyEvents(Actor*);
|
||||||
void ActorAllRange_ApplyDamage(Actor*);
|
void ActorAllRange_ApplyDamage(Actor*);
|
||||||
bool func_360_80031900(Actor*);
|
bool func_360_80031900(Actor*);
|
||||||
void ActorAllRange_Update(Actor* this);
|
void ActorAllRange_Update(Actor* this);
|
||||||
@ -223,9 +223,9 @@ void Scenery42_Update(Scenery*);
|
|||||||
void Actor196_Update(Actor*);
|
void Actor196_Update(Actor*);
|
||||||
void Actor189_Update(Actor*);
|
void Actor189_Update(Actor*);
|
||||||
void MeteoTunnel_Update(Scenery*);
|
void MeteoTunnel_Update(Scenery*);
|
||||||
void func_enmy2_8006ECBC(PlayerShotId, PlayerShot*, s32, f32, f32, f32, f32, f32, f32, f32, f32, f32);
|
void Actor_SetupPlayerShot(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 Actor_SpawnPlayerLaser(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_SpawnGreatFoxLaser(s32 actorId, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel, f32 zVel, f32 xRot, f32 yRot,
|
||||||
f32 zRot);
|
f32 zRot);
|
||||||
void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
|
void ActorEvent_8006F0D8(f32 xPos, f32 yPos, f32 zPos, f32 scale1);
|
||||||
void ActorEvent_8006F254(Actor*);
|
void ActorEvent_8006F254(Actor*);
|
||||||
|
@ -10,11 +10,11 @@
|
|||||||
#define evaRotateFlag(actor) (actor)->iwork[6]
|
#define evaRotateFlag(actor) (actor)->iwork[6]
|
||||||
#define evaTexLineFlag(actor) (actor)->iwork[7]
|
#define evaTexLineFlag(actor) (actor)->iwork[7]
|
||||||
#define evaTexLineIndex(actor) (actor)->iwork[8]
|
#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 EvaIwork10(actor) (actor)->iwork[10]
|
||||||
#define EvaIwork11(actor) (actor)->iwork[11]
|
#define EvaIwork11(actor) (actor)->iwork[11]
|
||||||
#define EvaIwork12(actor) (actor)->iwork[12]
|
#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 EvaIwork14(actor) (actor)->iwork[14]
|
||||||
#define EvaIwork15(actor) (actor)->iwork[15]
|
#define EvaIwork15(actor) (actor)->iwork[15]
|
||||||
#define EvaIwork16(actor) (actor)->iwork[16]
|
#define EvaIwork16(actor) (actor)->iwork[16]
|
||||||
@ -67,47 +67,70 @@
|
|||||||
|
|
||||||
#define EV_CHANGE_AI 200
|
#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_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_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_SET_BASE_ZVEL(zvel) EVENT_CMD(EVOP_SET_BASE_ZVEL, 0, zvel)
|
||||||
#define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0)
|
#define EVENT_SET_AS_LEADER() EVENT_CMD(EVOP_SET_AS_LEADER, 0 ,0 )
|
||||||
#define EVENT_SET_TRIGGER(cond, cmd) EVENT_CMD(EVOP_SET_TRIGGER, cmd, cond)
|
#define EVENT_START_FORMATION(duration) EVENT_CMD(EVOP_START_FORMATION, 0, duration)
|
||||||
#define EVENT_SET_Z_TRIGGER(z, cmd) EVENT_SET_TRIGGER(EVC_CLOSE_Z + (s32)((z) / 10), cmd)
|
#define EVENT_STOP_FORMATION() EVENT_CMD(EVOP_STOP_FORMATION, 0, 0)
|
||||||
#define EVENT_CLEAR_TRIGGER(cmd) EVENT_SET_TRIGGER(EVC_NONE, cmd)
|
|
||||||
#define EVENT_LOOP(count, cmd) EVENT_CMD(EVOP_LOOP, cmd, count)
|
#define EVENT_F4_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_X, (rotVel) * 10, rot)
|
||||||
#define EVENT_GOTO(cmd) EVENT_LOOP(0, cmd)
|
#define EVENT_F4_MINUS_X(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_X, (rotVel) * 10, rot)
|
||||||
#define EVENT_SET_SURFACE(type) EVENT_CMD(EVOP_SET_SURFACE, 0, type)
|
#define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, (rotVel) * 10, rot)
|
||||||
#define EVENT_DROP_ITEM(item) EVENT_CMD(EVOP_DROP_ITEM, 0, item)
|
#define EVENT_F4_MINUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_MINUS_Y, (rotVel) * 10, rot)
|
||||||
#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_ROT_PLUS_X(rot, rotVel) EVENT_CMD(EVOP_ROT_PLUS_X, (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_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_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_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_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_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_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0)
|
||||||
#define EVENT_F4_PLUS_Y(rot, rotVel) EVENT_CMD(EVOP_F4_PLUS_Y, (rotVel) * 10, rot)
|
#define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0)
|
||||||
#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_PURSUE_PLAYER(duration, turnRate) EVENT_CMD(EVOP_PURSUE_PLAYER, turnRate, duration)
|
||||||
#define EVENT_SET_TEAM_ID(teamId) EVENT_CMD(EVOP_SET_TEAM_ID, 0, teamId)
|
#define EVENT_FLEE_PLAYER(duration, turnRate) EVENT_CMD(EVOP_FLEE_PLAYER, turnRate, duration)
|
||||||
#define EVENT_DAMAGE_TEAM(teamId, damage) EVENT_CMD(EVOP_DAMAGE_TEAM, damage, teamId)
|
#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_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_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 {
|
typedef enum EventModeZ {
|
||||||
EMZ_REST,
|
EMZ_REST,
|
||||||
EMZ_RELATIVE,
|
EMZ_RELATIVE,
|
||||||
@ -119,9 +142,9 @@ typedef enum EventOpcode {
|
|||||||
/* 0 */ EVOP_SET_SPEED,
|
/* 0 */ EVOP_SET_SPEED,
|
||||||
/* 1 */ EVOP_SET_ACCEL,
|
/* 1 */ EVOP_SET_ACCEL,
|
||||||
/* 2 */ EVOP_SET_BASE_ZVEL,
|
/* 2 */ EVOP_SET_BASE_ZVEL,
|
||||||
/* 3 */ EVOP_SET_TO_IWORK_9,
|
/* 3 */ EVOP_SET_AS_LEADER,
|
||||||
/* 4 */ EVOP_SET_IWORK_13,
|
/* 4 */ EVOP_START_FORMATION,
|
||||||
/* 8 */ EVOP_CLEAR_IWORK_13 = 8,
|
/* 8 */ EVOP_STOP_FORMATION = 8,
|
||||||
/* 9 */ EVOP_F4_PLUS_X,
|
/* 9 */ EVOP_F4_PLUS_X,
|
||||||
/* 10 */ EVOP_F4_MINUS_X,
|
/* 10 */ EVOP_F4_MINUS_X,
|
||||||
/* 11 */ EVOP_F4_PLUS_Y,
|
/* 11 */ EVOP_F4_PLUS_Y,
|
||||||
@ -134,14 +157,14 @@ typedef enum EventOpcode {
|
|||||||
/* 21 */ EVOP_ROT_MINUS_Z,
|
/* 21 */ EVOP_ROT_MINUS_Z,
|
||||||
/* 24 */ EVOP_SET_ROTATE = 24,
|
/* 24 */ EVOP_SET_ROTATE = 24,
|
||||||
/* 25 */ EVOP_STOP_ROTATE,
|
/* 25 */ EVOP_STOP_ROTATE,
|
||||||
/* 40 */ EVOP_SET_STATE_6 = 40,
|
/* 40 */ EVOP_PURSUE_PLAYER = 40,
|
||||||
/* 41 */ EVOP_SET_STATE_7,
|
/* 41 */ EVOP_FLEE_PLAYER,
|
||||||
/* 42 */ EVOP_SET_STATE_8,
|
/* 42 */ EVOP_PURSUE_TARGET,
|
||||||
/* 43 */ EVOP_SET_STATE_9,
|
/* 43 */ EVOP_FLEE_TARGET,
|
||||||
/* 44 */ EVOP_CHASE_TARGET,
|
/* 44 */ EVOP_CHASE_TARGET,
|
||||||
/* 45 */ EVOP_SET_TARGET,
|
/* 45 */ EVOP_SET_TARGET,
|
||||||
/* 46 */ EVOP_SET_STATE_14,
|
/* 46 */ EVOP_PURSUE_CAMERA,
|
||||||
/* 47 */ EVOP_SET_STATE_15,
|
/* 47 */ EVOP_FLEE_CAMERA,
|
||||||
/* 48 */ EVOP_SET_WAIT,
|
/* 48 */ EVOP_SET_WAIT,
|
||||||
/* 56 */ EVOP_SET_CALL = 56,
|
/* 56 */ EVOP_SET_CALL = 56,
|
||||||
/* 57 */ EVOP_RESTORE_TEAM,
|
/* 57 */ EVOP_RESTORE_TEAM,
|
||||||
@ -166,7 +189,7 @@ typedef enum EventOpcode {
|
|||||||
|
|
||||||
typedef enum EventCondition {
|
typedef enum EventCondition {
|
||||||
/* 0 */ EVC_NONE,
|
/* 0 */ EVC_NONE,
|
||||||
/* 1 */ EVC_1,
|
/* 1 */ EVC_NO_TARGET,
|
||||||
/* 2 */ EVC_TEAM_COUNT_3,
|
/* 2 */ EVC_TEAM_COUNT_3,
|
||||||
/* 3 */ EVC_TEAM_COUNT_2,
|
/* 3 */ EVC_TEAM_COUNT_2,
|
||||||
/* 4 */ EVC_TEAM_COUNT_1,
|
/* 4 */ EVC_TEAM_COUNT_1,
|
||||||
@ -206,12 +229,12 @@ typedef enum EventCondition {
|
|||||||
/* 38 */ EVC_UNK3_LASER,
|
/* 38 */ EVC_UNK3_LASER,
|
||||||
/* 39 */ EVC_SHOT_CLOSE_150,
|
/* 39 */ EVC_SHOT_CLOSE_150,
|
||||||
/* 40 */ EVC_SHOT_CLOSE_300,
|
/* 40 */ EVC_SHOT_CLOSE_300,
|
||||||
/* 41 */ EVC_41,
|
/* 41 */ EVC_NO_LEADER,
|
||||||
/* 42 */ EVC_42,
|
/* 42 */ EVC_NO_FOLLOWER,
|
||||||
/* 43 */ EVC_43,
|
/* 43 */ EVC_HAS_FOLLOWER,
|
||||||
/* 44 */ EVC_TOOK_DAMAGE,
|
/* 44 */ EVC_TOOK_DAMAGE,
|
||||||
/* 45 */ EVC_PASSED_ALL_RINGS,
|
/* 45 */ EVC_PASSED_ALL_RINGS,
|
||||||
/* 46 */ EVC_46,
|
/* 46 */ EVC_ATTACK_GROUP_CLEARED,
|
||||||
/* 47 */ EVC_PRESS_CRIGHT,
|
/* 47 */ EVC_PRESS_CRIGHT,
|
||||||
/* 48 */ EVC_WING_BROKEN,
|
/* 48 */ EVC_WING_BROKEN,
|
||||||
/* 49 */ EVC_ME_CLEAR,
|
/* 49 */ EVC_ME_CLEAR,
|
||||||
@ -227,14 +250,12 @@ typedef enum EventCondition {
|
|||||||
/* 59 */ EVC_ZO_CLEAR,
|
/* 59 */ EVC_ZO_CLEAR,
|
||||||
/* 60 */ EVC_SZ_CLEAR,
|
/* 60 */ EVC_SZ_CLEAR,
|
||||||
/* 61 */ EVC_A6_CLEAR,
|
/* 61 */ EVC_A6_CLEAR,
|
||||||
/* 62 */ EVC_62,
|
/* 62 */ EVC_NOT_CHASED,
|
||||||
/* 63 */ EVC_63,
|
/* 63 */ EVC_CHASED,
|
||||||
/* 64 */ EVC_MISSED_SEARCHLIGHT,
|
/* 64 */ EVC_MISSED_SEARCHLIGHT,
|
||||||
/* 65 */ EVC_30_HITS,
|
/* 65 */ EVC_30_HITS,
|
||||||
/* 66 */ EVC_80_HITS,
|
/* 66 */ EVC_80_HITS,
|
||||||
/* 67 */ EVC_EXPERT_MODE,
|
/* 67 */ EVC_EXPERT_MODE,
|
||||||
/* 68 */ EVC_68,
|
|
||||||
/* 69 */ EVC_69,
|
|
||||||
/* 100 */ EVC_CLOSE_Z=100,
|
/* 100 */ EVC_CLOSE_Z=100,
|
||||||
} EventCondition;
|
} EventCondition;
|
||||||
|
|
||||||
@ -245,16 +266,16 @@ typedef enum EventState {
|
|||||||
/* 3 */ EVSTATE_F4_MINUS_X,
|
/* 3 */ EVSTATE_F4_MINUS_X,
|
||||||
/* 4 */ EVSTATE_F4_PLUS_Y,
|
/* 4 */ EVSTATE_F4_PLUS_Y,
|
||||||
/* 5 */ EVSTATE_F4_MINUS_Y,
|
/* 5 */ EVSTATE_F4_MINUS_Y,
|
||||||
/* 6 */ EVSTATE_6,
|
/* 6 */ EVSTATE_PURSUE_PLAYER,
|
||||||
/* 7 */ EVSTATE_7,
|
/* 7 */ EVSTATE_FLEE_PLAYER,
|
||||||
/* 8 */ EVSTATE_8,
|
/* 8 */ EVSTATE_PURSUE_TARGET,
|
||||||
/* 9 */ EVSTATE_9,
|
/* 9 */ EVSTATE_FLEE_TARGET,
|
||||||
/* 10 */ EVSTATE_ME_AS_OPEN,
|
/* 10 */ EVSTATE_ME_AS_OPEN,
|
||||||
/* 11 */ EVSTATE_ME_AS_CLOSE,
|
/* 11 */ EVSTATE_ME_AS_CLOSE,
|
||||||
/* 12 */ EVSTATE_TEAM_RETREAT,
|
/* 12 */ EVSTATE_TEAM_RETREAT,
|
||||||
/* 13 */ EVSTATE_CHASE_TARGET,
|
/* 13 */ EVSTATE_CHASE_TARGET,
|
||||||
/* 14 */ EVSTATE_14,
|
/* 14 */ EVSTATE_PURSUE_CAMERA,
|
||||||
/* 15 */ EVSTATE_15,
|
/* 15 */ EVSTATE_FLEE_CAMERA,
|
||||||
/* 200 */ EVSTATE_SCRIPT_END = 200,
|
/* 200 */ EVSTATE_SCRIPT_END = 200,
|
||||||
/* 1000 */ EVSTATE_1000 = 1000,
|
/* 1000 */ EVSTATE_1000 = 1000,
|
||||||
} EventState;
|
} EventState;
|
||||||
@ -273,7 +294,7 @@ typedef enum EventAction {
|
|||||||
/* 10 */ EVACT_10,
|
/* 10 */ EVACT_10,
|
||||||
/* 11 */ EVACT_11,
|
/* 11 */ EVACT_11,
|
||||||
/* 12 */ EVACT_DESPAWN,
|
/* 12 */ EVACT_DESPAWN,
|
||||||
/* 13 */ EVACT_13,
|
/* 13 */ EVACT_TI_DROP_MINE,
|
||||||
/* 14 */ EVACT_ME_AS_OPEN,
|
/* 14 */ EVACT_ME_AS_OPEN,
|
||||||
/* 15 */ EVACT_ME_AS_CLOSE,
|
/* 15 */ EVACT_ME_AS_CLOSE,
|
||||||
/* 16 */ EVACT_16,
|
/* 16 */ EVACT_16,
|
||||||
@ -282,119 +303,119 @@ typedef enum EventAction {
|
|||||||
/* 19 */ EVACT_19,
|
/* 19 */ EVACT_19,
|
||||||
} EventAction;
|
} EventAction;
|
||||||
|
|
||||||
typedef enum EventActorInfo {
|
typedef enum EventActorId {
|
||||||
/* 0 */ EINFO_0,
|
/* 0 */ EVID_0,
|
||||||
/* 1 */ EINFO_1,
|
/* 1 */ EVID_1,
|
||||||
/* 2 */ EINFO_2,
|
/* 2 */ EVID_2,
|
||||||
/* 3 */ EINFO_3,
|
/* 3 */ EVID_3,
|
||||||
/* 4 */ EINFO_4,
|
/* 4 */ EVID_4,
|
||||||
/* 5 */ EINFO_5,
|
/* 5 */ EVID_5,
|
||||||
/* 6 */ EINFO_6,
|
/* 6 */ EVID_6,
|
||||||
/* 7 */ EINFO_7,
|
/* 7 */ EVID_7,
|
||||||
/* 8 */ EINFO_8,
|
/* 8 */ EVID_8,
|
||||||
/* 9 */ EINFO_9,
|
/* 9 */ EVID_9,
|
||||||
/* 10 */ EINFO_10,
|
/* 10 */ EVID_10,
|
||||||
/* 11 */ EINFO_11,
|
/* 11 */ EVID_11,
|
||||||
/* 12 */ EINFO_12,
|
/* 12 */ EVID_12,
|
||||||
/* 13 */ EINFO_13,
|
/* 13 */ EVID_13,
|
||||||
/* 14 */ EINFO_14,
|
/* 14 */ EVID_14,
|
||||||
/* 15 */ EINFO_15,
|
/* 15 */ EVID_15,
|
||||||
/* 16 */ EINFO_16,
|
/* 16 */ EVID_16,
|
||||||
/* 17 */ EINFO_17,
|
/* 17 */ EVID_17,
|
||||||
/* 18 */ EINFO_18,
|
/* 18 */ EVID_18,
|
||||||
/* 19 */ EINFO_19,
|
/* 19 */ EVID_19,
|
||||||
/* 20 */ EINFO_20,
|
/* 20 */ EVID_20,
|
||||||
/* 21 */ EINFO_21,
|
/* 21 */ EVID_21,
|
||||||
/* 22 */ EINFO_22,
|
/* 22 */ EVID_22,
|
||||||
/* 23 */ EINFO_23,
|
/* 23 */ EVID_23,
|
||||||
/* 24 */ EINFO_24,
|
/* 24 */ EVID_24,
|
||||||
/* 25 */ EINFO_25,
|
/* 25 */ EVID_25,
|
||||||
/* 26 */ EINFO_26,
|
/* 26 */ EVID_26,
|
||||||
/* 27 */ EINFO_27,
|
/* 27 */ EVID_27,
|
||||||
/* 28 */ EINFO_28,
|
/* 28 */ EVID_28,
|
||||||
/* 29 */ EINFO_29,
|
/* 29 */ EVID_29,
|
||||||
/* 30 */ EINFO_30,
|
/* 30 */ EVID_30,
|
||||||
/* 31 */ EINFO_31,
|
/* 31 */ EVID_31,
|
||||||
/* 32 */ EINFO_32,
|
/* 32 */ EVID_32,
|
||||||
/* 33 */ EINFO_33,
|
/* 33 */ EVID_33,
|
||||||
/* 34 */ EINFO_34,
|
/* 34 */ EVID_34,
|
||||||
/* 35 */ EINFO_35,
|
/* 35 */ EVID_35,
|
||||||
/* 36 */ EINFO_36,
|
/* 36 */ EVID_36,
|
||||||
/* 37 */ EINFO_37,
|
/* 37 */ EVID_37,
|
||||||
/* 38 */ EINFO_38,
|
/* 38 */ EVID_38,
|
||||||
/* 39 */ EINFO_39,
|
/* 39 */ EVID_39,
|
||||||
/* 40 */ EINFO_40,
|
/* 40 */ EVID_40,
|
||||||
/* 41 */ EINFO_41,
|
/* 41 */ EVID_41,
|
||||||
/* 42 */ EINFO_42,
|
/* 42 */ EVID_42,
|
||||||
/* 43 */ EINFO_43,
|
/* 43 */ EVID_43,
|
||||||
/* 44 */ EINFO_44,
|
/* 44 */ EVID_44,
|
||||||
/* 45 */ EINFO_45,
|
/* 45 */ EVID_45,
|
||||||
/* 46 */ EINFO_46,
|
/* 46 */ EVID_46,
|
||||||
/* 47 */ EINFO_47,
|
/* 47 */ EVID_47,
|
||||||
/* 48 */ EINFO_48,
|
/* 48 */ EVID_48,
|
||||||
/* 49 */ EINFO_49,
|
/* 49 */ EVID_49,
|
||||||
/* 50 */ EINFO_50,
|
/* 50 */ EVID_50,
|
||||||
/* 51 */ EINFO_51,
|
/* 51 */ EVID_51,
|
||||||
/* 52 */ EINFO_52,
|
/* 52 */ EVID_52,
|
||||||
/* 53 */ EINFO_53,
|
/* 53 */ EVID_53,
|
||||||
/* 54 */ EINFO_54,
|
/* 54 */ EVID_54,
|
||||||
/* 55 */ EINFO_55,
|
/* 55 */ EVID_55,
|
||||||
/* 56 */ EINFO_56,
|
/* 56 */ EVID_56,
|
||||||
/* 57 */ EINFO_57,
|
/* 57 */ EVID_57,
|
||||||
/* 58 */ EINFO_58,
|
/* 58 */ EVID_58,
|
||||||
/* 59 */ EINFO_59,
|
/* 59 */ EVID_59,
|
||||||
/* 60 */ EINFO_60,
|
/* 60 */ EVID_60,
|
||||||
/* 61 */ EINFO_61,
|
/* 61 */ EVID_61,
|
||||||
/* 62 */ EINFO_62,
|
/* 62 */ EVID_62,
|
||||||
/* 63 */ EINFO_63,
|
/* 63 */ EVID_63,
|
||||||
/* 64 */ EINFO_64,
|
/* 64 */ EVID_64,
|
||||||
/* 65 */ EINFO_65,
|
/* 65 */ EVID_65,
|
||||||
/* 66 */ EINFO_66,
|
/* 66 */ EVID_66,
|
||||||
/* 67 */ EINFO_67,
|
/* 67 */ EVID_67,
|
||||||
/* 68 */ EINFO_68,
|
/* 68 */ EVID_68,
|
||||||
/* 69 */ EINFO_69,
|
/* 69 */ EVID_69,
|
||||||
/* 70 */ EINFO_70,
|
/* 70 */ EVID_70,
|
||||||
/* 71 */ EINFO_71,
|
/* 71 */ EVID_71,
|
||||||
/* 72 */ EINFO_72,
|
/* 72 */ EVID_72,
|
||||||
/* 73 */ EINFO_73,
|
/* 73 */ EVID_73,
|
||||||
/* 74 */ EINFO_74,
|
/* 74 */ EVID_74,
|
||||||
/* 75 */ EINFO_75,
|
/* 75 */ EVID_75,
|
||||||
/* 76 */ EINFO_76,
|
/* 76 */ EVID_76,
|
||||||
/* 77 */ EINFO_77,
|
/* 77 */ EVID_77,
|
||||||
/* 78 */ EINFO_78,
|
/* 78 */ EVID_78,
|
||||||
/* 79 */ EINFO_79,
|
/* 79 */ EVID_79,
|
||||||
/* 80 */ EINFO_80,
|
/* 80 */ EVID_80,
|
||||||
/* 81 */ EINFO_81,
|
/* 81 */ EVID_81,
|
||||||
/* 82 */ EINFO_82,
|
/* 82 */ EVID_82,
|
||||||
/* 83 */ EINFO_83,
|
/* 83 */ EVID_83,
|
||||||
/* 84 */ EINFO_84,
|
/* 84 */ EVID_84,
|
||||||
/* 85 */ EINFO_85,
|
/* 85 */ EVID_85,
|
||||||
/* 86 */ EINFO_86,
|
/* 86 */ EVID_86,
|
||||||
/* 87 */ EINFO_87,
|
/* 87 */ EVID_87,
|
||||||
/* 88 */ EINFO_88,
|
/* 88 */ EVID_88,
|
||||||
/* 89 */ EINFO_89,
|
/* 89 */ EVID_89,
|
||||||
/* 90 */ EINFO_90,
|
/* 90 */ EVID_90,
|
||||||
/* 91 */ EINFO_91,
|
/* 91 */ EVID_91,
|
||||||
/* 92 */ EINFO_92,
|
/* 92 */ EVID_92,
|
||||||
/* 93 */ EINFO_93,
|
/* 93 */ EVID_93,
|
||||||
/* 94 */ EINFO_94,
|
/* 94 */ EVID_94,
|
||||||
/* 95 */ EINFO_95,
|
/* 95 */ EVID_95,
|
||||||
/* 96 */ EINFO_96,
|
/* 96 */ EVID_96,
|
||||||
/* 97 */ EINFO_97,
|
/* 97 */ EVID_97,
|
||||||
/* 98 */ EINFO_98,
|
/* 98 */ EVID_98,
|
||||||
/* 99 */ EINFO_99,
|
/* 99 */ EVID_99,
|
||||||
/* 100 */ EINFO_100,
|
/* 100 */ EVID_100,
|
||||||
/* 101 */ EINFO_101,
|
/* 101 */ EVID_101,
|
||||||
/* 102 */ EINFO_102,
|
/* 102 */ EVID_102,
|
||||||
/* 103 */ EINFO_103,
|
/* 103 */ EVID_103,
|
||||||
/* 104 */ EINFO_104,
|
/* 104 */ EVID_104,
|
||||||
/* 105 */ EINFO_105,
|
/* 105 */ EVID_105,
|
||||||
/* 106 */ EINFO_106,
|
/* 106 */ EVID_106,
|
||||||
/* 107 */ EINFO_107,
|
/* 107 */ EVID_107,
|
||||||
/* 200 */ EINFO_200 = 200,
|
/* 200 */ EVID_200 = 200,
|
||||||
/* 300 */ EINFO_300 = 300,
|
/* 300 */ EVID_300 = 300,
|
||||||
/* 4095*/ EINFO_FFF = 4095,
|
/* 4095*/ EVID_FFF = 4095,
|
||||||
} EventActorInfo;
|
} EventActorId;
|
||||||
|
|
||||||
typedef enum EventSfx {
|
typedef enum EventSfx {
|
||||||
/* 0 */ EVSFX_0,
|
/* 0 */ EVSFX_0,
|
||||||
|
@ -261,10 +261,14 @@ typedef struct {
|
|||||||
/* 0x3FC */ f32 sfxSource[3];
|
/* 0x3FC */ f32 sfxSource[3];
|
||||||
} Boss; // size = 0x408
|
} Boss; // size = 0x408
|
||||||
|
|
||||||
|
#define DMG_COLLISION 3
|
||||||
|
#define DMG_EXPLOSION 2
|
||||||
#define DMG_BEAM 1
|
#define DMG_BEAM 1
|
||||||
#define DMG_NONE 0
|
#define DMG_NONE 0
|
||||||
#define DMG_BOMB -1
|
#define DMG_BOMB -1
|
||||||
#define DMG_zRot_0FC 100
|
#define DMG_UNK_100 100
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/* 0x000 */ Object obj;
|
/* 0x000 */ Object obj;
|
||||||
@ -963,7 +967,7 @@ typedef Scenery Scenery_35;
|
|||||||
typedef Scenery Scenery_36;
|
typedef Scenery Scenery_36;
|
||||||
typedef Scenery Scenery_37;
|
typedef Scenery Scenery_37;
|
||||||
typedef Scenery Scenery_38;
|
typedef Scenery Scenery_38;
|
||||||
typedef Scenery Scenery_39;
|
typedef Scenery MeteoTunnel;
|
||||||
typedef Scenery Scenery_40;
|
typedef Scenery Scenery_40;
|
||||||
typedef Scenery Scenery_41;
|
typedef Scenery Scenery_41;
|
||||||
typedef Scenery Scenery_42;
|
typedef Scenery Scenery_42;
|
||||||
|
@ -86,6 +86,11 @@ typedef enum {
|
|||||||
/* 9 */ PLAYERSHOT_9,
|
/* 9 */ PLAYERSHOT_9,
|
||||||
} PlayerShotId;
|
} PlayerShotId;
|
||||||
|
|
||||||
|
#define NPC_SHOT_ID 100
|
||||||
|
#define CS_SHOT_ID 100
|
||||||
|
#define DMG_SRC_2 2
|
||||||
|
#define DMG_SRC_100 100
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
/* 0 */ LASERS_SINGLE,
|
/* 0 */ LASERS_SINGLE,
|
||||||
/* 1 */ LASERS_TWIN,
|
/* 1 */ LASERS_TWIN,
|
||||||
@ -108,7 +113,7 @@ typedef struct {
|
|||||||
/* 0x5C */ s32 unk_5C;
|
/* 0x5C */ s32 unk_5C;
|
||||||
/* 0x60 */ s32 unk_60;
|
/* 0x60 */ s32 unk_60;
|
||||||
/* 0x64 */ s32 unk_64;
|
/* 0x64 */ s32 unk_64;
|
||||||
/* 0x68 */ s32 playerNum;
|
/* 0x68 */ s32 sourceId;
|
||||||
/* 0x6C */ u8 bonus;
|
/* 0x6C */ u8 bonus;
|
||||||
} PlayerShot; // size = 0x70
|
} PlayerShot; // size = 0x70
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
#include "sf64player.h"
|
#include "sf64player.h"
|
||||||
|
|
||||||
// fox_360
|
// fox_360
|
||||||
extern s32 D_360_800C9B4C;
|
extern s32 gAllRangeSpawnEvent;
|
||||||
|
|
||||||
// fox_bg
|
// fox_bg
|
||||||
extern u16 gStarColors[16];
|
extern u16 gStarColors[16];
|
||||||
@ -47,7 +47,7 @@ extern f32 gWarpZoneEvent94Hitbox[];
|
|||||||
extern f32 gWarpZoneEvent96Hitbox[];
|
extern f32 gWarpZoneEvent96Hitbox[];
|
||||||
extern f32 gWarpZoneEvent92Hitbox[];
|
extern f32 gWarpZoneEvent92Hitbox[];
|
||||||
extern f32 gWarpZoneEvent93Hitbox[];
|
extern f32 gWarpZoneEvent93Hitbox[];
|
||||||
extern ObjectInfo D_edata_800CC124[];
|
extern ObjectInfo gObjectInfo[];
|
||||||
extern f32* D_edata_800CF964[];
|
extern f32* D_edata_800CF964[];
|
||||||
|
|
||||||
// fox_edisplay
|
// fox_edisplay
|
||||||
|
@ -67,7 +67,7 @@ D_display_800CA23C = 0x800CA23C;//size:0x18
|
|||||||
D_display_800CA26C = 0x800CA26C;//size:0x20
|
D_display_800CA26C = 0x800CA26C;//size:0x20
|
||||||
D_800CA260 = 0x800CA260;//size:0xC
|
D_800CA260 = 0x800CA260;//size:0xC
|
||||||
D_display_801613E0 = 0x801613E0;//size:0x18
|
D_display_801613E0 = 0x801613E0;//size:0x18
|
||||||
D_edata_800CC124 = 0x800CC124;//type:u8
|
gObjectInfo = 0x800CC124;//type:u8
|
||||||
D_boss_800C9E90 = 0x800C9E90;//size:0x70
|
D_boss_800C9E90 = 0x800C9E90;//size:0x70
|
||||||
|
|
||||||
gLeveLClearStatus = 0x800D3180; // size:0x20
|
gLeveLClearStatus = 0x800D3180; // size:0x20
|
||||||
|
@ -551,11 +551,11 @@ gBombCount = 0x80177DA0;
|
|||||||
gGameFrameCount = 0x80177DB0;
|
gGameFrameCount = 0x80177DB0;
|
||||||
gObjectLoadIndex = 0x80177DC8;
|
gObjectLoadIndex = 0x80177DC8;
|
||||||
gPrevEventActorIndex = 0x80177E70;
|
gPrevEventActorIndex = 0x80177E70;
|
||||||
D_ctx_80177E78 = 0x80177E78;
|
gFormationLeaderIndex = 0x80177E78;
|
||||||
gRingPassCount = 0x80177E80;
|
gRingPassCount = 0x80177E80;
|
||||||
D_ctx_80177E88 = 0x80177E88; // size:0xC
|
gFormationInitRot = 0x80177E88; // size:0xC
|
||||||
gTeamArrowsViewPos = 0x80177E98;
|
gTeamArrowsViewPos = 0x80177E98;
|
||||||
D_ctx_80177F10 = 0x80177F10;
|
gFormationInitPos = 0x80177F10;
|
||||||
D_ctx_80177F20 = 0x80177F20; //size:0xF4
|
D_ctx_80177F20 = 0x80177F20; //size:0xF4
|
||||||
D_ctx_80178028 = 0x80178028; //size:0xF4
|
D_ctx_80178028 = 0x80178028; //size:0xF4
|
||||||
D_ctx_8017812C = 0x8017812C;
|
D_ctx_8017812C = 0x8017812C;
|
||||||
|
@ -32,32 +32,6 @@ typedef enum ActorAllRangeState {
|
|||||||
STATE360_19,
|
STATE360_19,
|
||||||
} ActorAllRangeState;
|
} 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 gAllRangeSupplyTimer;
|
||||||
s32 sStarWolfKillTimer;
|
s32 sStarWolfKillTimer;
|
||||||
s16 gStarWolfMsgTimer;
|
s16 gStarWolfMsgTimer;
|
||||||
@ -318,7 +292,7 @@ void func_360_8002EE64(Actor* this) {
|
|||||||
Vec3f spB4;
|
Vec3f spB4;
|
||||||
Vec3f spA8;
|
Vec3f spA8;
|
||||||
f32 spA0[2];
|
f32 spA0[2];
|
||||||
Vec3f sp94 = D_360_800C9A90;
|
Vec3f sp94 = { 0.0f, -10.0f, 0.0f };
|
||||||
s32 pad1;
|
s32 pad1;
|
||||||
s32 pad2;
|
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) {
|
void ActorAllRange_SpawnTeam(void) {
|
||||||
Actor* actor;
|
Actor* actor;
|
||||||
s32 i;
|
s32 i;
|
||||||
@ -393,14 +377,14 @@ void ActorAllRange_SpawnTeam(void) {
|
|||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
actor->aiType = AI360_EVENT_HANDLER;
|
actor->aiType = AI360_EVENT_HANDLER;
|
||||||
} else {
|
} else {
|
||||||
actor->obj.pos.x = D_360_800C9A9C[i].x;
|
actor->obj.pos.x = sTeamSpawnPos[i].x;
|
||||||
actor->obj.pos.y = D_360_800C9A9C[i].y;
|
actor->obj.pos.y = sTeamSpawnPos[i].y;
|
||||||
actor->obj.pos.z = D_360_800C9A9C[i].z;
|
actor->obj.pos.z = sTeamSpawnPos[i].z;
|
||||||
actor->aiType = D_360_800C9ACC[i];
|
actor->aiType = sTeamAi[i];
|
||||||
if (gCurrentLevel == LEVEL_KATINA) {
|
if (gCurrentLevel == LEVEL_KATINA) {
|
||||||
actor->aiIndex = D_360_800C9AEC[i];
|
actor->aiIndex = sTeamSpawnTargetsKA[i];
|
||||||
} else {
|
} else {
|
||||||
actor->aiIndex = D_360_800C9ADC[i];
|
actor->aiIndex = sTeamSpawnTargets[i];
|
||||||
}
|
}
|
||||||
actor->state = STATE360_2;
|
actor->state = STATE360_2;
|
||||||
actor->unk_0F4.y = 180.0f;
|
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) {
|
void ActorAllRange_SpawnStarWolf(void) {
|
||||||
Actor* actor;
|
Actor* actor;
|
||||||
s32 i;
|
s32 i;
|
||||||
@ -432,12 +426,12 @@ void ActorAllRange_SpawnStarWolf(void) {
|
|||||||
if (gStarWolfTeamAlive[i] != 0) {
|
if (gStarWolfTeamAlive[i] != 0) {
|
||||||
Actor_Initialize(actor);
|
Actor_Initialize(actor);
|
||||||
actor->obj.status = OBJ_ACTIVE;
|
actor->obj.status = OBJ_ACTIVE;
|
||||||
actor->obj.pos.x = D_360_800C9AFC[i].x;
|
actor->obj.pos.x = sStarWolfSpawnPos[i].x;
|
||||||
actor->obj.pos.y = D_360_800C9AFC[i].y;
|
actor->obj.pos.y = sStarWolfSpawnPos[i].y;
|
||||||
actor->obj.pos.z = D_360_800C9AFC[i].z;
|
actor->obj.pos.z = sStarWolfSpawnPos[i].z;
|
||||||
actor->obj.id = OBJ_ACTOR_ALLRANGE;
|
actor->obj.id = OBJ_ACTOR_ALLRANGE;
|
||||||
actor->aiType = i + AI360_WOLF;
|
actor->aiType = i + AI360_WOLF;
|
||||||
actor->aiIndex = D_360_800C9B2C[i];
|
actor->aiIndex = sStarWolfSpawnTargets[i];
|
||||||
gActors[actor->aiIndex].aiIndex = -1;
|
gActors[actor->aiIndex].aiIndex = -1;
|
||||||
actor->health = 100;
|
actor->health = 100;
|
||||||
actor->unk_0C9 = 1;
|
actor->unk_0C9 = 1;
|
||||||
@ -447,7 +441,7 @@ void ActorAllRange_SpawnStarWolf(void) {
|
|||||||
actor->unk_0F4.x = -20.0f;
|
actor->unk_0F4.x = -20.0f;
|
||||||
actor->iwork[11] = 1;
|
actor->iwork[11] = 1;
|
||||||
if (gCurrentLevel == LEVEL_VENOM_2) {
|
if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||||
actor->obj.rot.z = D_360_800C9B3C[i];
|
actor->obj.rot.z = sStarWolfVE2SpawnRot[i];
|
||||||
actor->itemDrop = DROP_SILVER_STAR;
|
actor->itemDrop = DROP_SILVER_STAR;
|
||||||
}
|
}
|
||||||
Object_SetInfo(&actor->info, actor->obj.id);
|
Object_SetInfo(&actor->info, actor->obj.id);
|
||||||
@ -473,7 +467,7 @@ void ActorAllRange_StarWolfDefeatMesg(u16* msg, RadioCharacterId character) {
|
|||||||
ActorAllRange_PlayMessage(msg, character);
|
ActorAllRange_PlayMessage(msg, character);
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_360_8002F69C(Actor* this) {
|
void ActorAllRange_UpdateStarWolfEvents(Actor* this) {
|
||||||
Actor* actor;
|
Actor* actor;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
@ -484,12 +478,12 @@ void func_360_8002F69C(Actor* this) {
|
|||||||
Radio_PlayMessage(gMsg_ID_19465, RCID_FOX);
|
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?
|
// fake?
|
||||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 30);
|
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 30);
|
||||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 30);
|
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 30);
|
||||||
}
|
}
|
||||||
if (gAllRangeEventTimer == D_360_800C9B4C) {
|
if (gAllRangeEventTimer == gAllRangeSpawnEvent) {
|
||||||
ActorAllRange_SpawnStarWolf();
|
ActorAllRange_SpawnStarWolf();
|
||||||
this->state = STATE360_3;
|
this->state = STATE360_3;
|
||||||
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_STANDBY;
|
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.y = gActors[AI360_WOLF].obj.pos.y;
|
||||||
gPlayer[0].cam.at.z = gActors[AI360_WOLF].obj.pos.z;
|
gPlayer[0].cam.at.z = gActors[AI360_WOLF].obj.pos.z;
|
||||||
}
|
}
|
||||||
if ((gAllRangeEventTimer > D_360_800C9B4C) && (gStarWolfMsgTimer == 0)) {
|
if ((gAllRangeEventTimer > gAllRangeSpawnEvent) && (gStarWolfMsgTimer == 0)) {
|
||||||
gAllRangeFrameCount++;
|
gAllRangeFrameCount++;
|
||||||
for (i = AI360_FALCO, actor = &gActors[AI360_FALCO]; i <= AI360_ANDREW; i++, actor++) {
|
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) &&
|
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)) {
|
if ((gActors[actor->aiIndex].state == STATE360_3) && (gActors[actor->aiIndex].aiType <= AI360_ANDREW)) {
|
||||||
gActors[actor->aiIndex].iwork[2] = AI360_FOX;
|
gActors[actor->aiIndex].iwork[2] = AI360_FOX;
|
||||||
gActors[actor->aiIndex].state = STATE360_2;
|
gActors[actor->aiIndex].state = STATE360_2;
|
||||||
@ -560,24 +554,24 @@ void func_360_8002F69C(Actor* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_360_8002FB4C(Actor* actor) {
|
void ActorAllRange_ChooseNewTarget(Actor* actor) {
|
||||||
Actor* actor2;
|
Actor* team;
|
||||||
Actor* actor1;
|
Actor* enemy;
|
||||||
s32 var_a0;
|
s32 alreadyTaken;
|
||||||
s32 j;
|
s32 teamId;
|
||||||
s32 i;
|
s32 enemyId;
|
||||||
|
|
||||||
for (i = 10, actor1 = &gActors[10]; i < ARRAY_COUNT(gActors); i++, actor1++) {
|
for (enemyId = AI360_10, enemy = &gActors[AI360_10]; enemyId < ARRAY_COUNT(gActors); enemyId++, enemy++) {
|
||||||
if ((actor1->obj.status == OBJ_ACTIVE) && (actor1->obj.id == OBJ_ACTOR_ALLRANGE) && (actor1->unk_0B6 == 0) &&
|
if ((enemy->obj.status == OBJ_ACTIVE) && (enemy->obj.id == OBJ_ACTOR_ALLRANGE) && (enemy->unk_0B6 == 0) &&
|
||||||
(actor1->aiIndex <= -1)) {
|
(enemy->aiIndex <= -1)) {
|
||||||
var_a0 = false;
|
alreadyTaken = false;
|
||||||
for (j = 1, actor2 = &gActors[1]; j < 4; j++, actor2++) {
|
for (teamId = AI360_FALCO, team = &gActors[AI360_FALCO]; teamId <= AI360_PEPPY; teamId++, team++) {
|
||||||
if ((j != actor->index) && (i == actor2->aiIndex)) {
|
if ((teamId != actor->index) && (enemyId == team->aiIndex)) {
|
||||||
var_a0 = true;
|
alreadyTaken = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!var_a0) {
|
if (!alreadyTaken) {
|
||||||
actor->aiIndex = i;
|
actor->aiIndex = enemyId;
|
||||||
actor->state = STATE360_2;
|
actor->state = STATE360_2;
|
||||||
actor->iwork[2] = AI360_FOX;
|
actor->iwork[2] = AI360_FOX;
|
||||||
break;
|
break;
|
||||||
@ -586,29 +580,30 @@ void func_360_8002FB4C(Actor* actor) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_360_8002FC00(Actor* this) {
|
void ActorAllRange_UpdateEvemyEvents(Actor* this) {
|
||||||
Actor* actor;
|
Actor* enemy;
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
for (i = 0, actor = &gActors[10]; i < 50; i++, actor++) {
|
for (i = 0, enemy = &gActors[AI360_10]; i < 50; i++, enemy++) {
|
||||||
if ((actor->obj.status == OBJ_DYING) && (actor->aiIndex >= AI360_FALCO) && (actor->aiIndex <= AI360_PEPPY)) {
|
if ((enemy->obj.status == OBJ_DYING) && (enemy->aiIndex >= AI360_FALCO) && (enemy->aiIndex <= AI360_PEPPY)) {
|
||||||
Actor* actor2;
|
Actor* enemy2;
|
||||||
s32 j;
|
s32 j;
|
||||||
|
|
||||||
for (j = 0, actor2 = &gActors[10]; j < 51; j++, actor2++) {
|
for (j = 0, enemy2 = &gActors[AI360_10]; j <= 50; j++, enemy2++) { // bug? should be <
|
||||||
if ((actor2->obj.status == OBJ_ACTIVE) && (actor2->state == STATE360_2) &&
|
if ((enemy2->obj.status == OBJ_ACTIVE) && (enemy2->state == STATE360_2) &&
|
||||||
(actor2->aiIndex == actor->aiIndex)) {
|
(enemy2->aiIndex == enemy->aiIndex)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gTeamShields[actor->aiIndex] > 0) {
|
if (gTeamShields[enemy->aiIndex] > 0) {
|
||||||
func_360_8002FB4C(&gActors[actor->aiIndex]);
|
ActorAllRange_ChooseNewTarget(&gActors[enemy->aiIndex]);
|
||||||
if ((actor->iwork[5] != 0) && (actor->dmgSource == 1) && (gActors[actor->aiIndex].iwork[3] == 0)) {
|
if ((enemy->iwork[5] != 0) && (enemy->dmgSource == AI360_FOX + 1) &&
|
||||||
if (gTeamHelpActor == &gActors[actor->aiIndex]) {
|
(gActors[enemy->aiIndex].iwork[3] == 0)) {
|
||||||
|
if (gTeamHelpActor == &gActors[enemy->aiIndex]) {
|
||||||
gTeamHelpActor = NULL;
|
gTeamHelpActor = NULL;
|
||||||
gTeamHelpTimer = 0;
|
gTeamHelpTimer = 0;
|
||||||
}
|
}
|
||||||
switch (gActors[actor->aiIndex].aiType) {
|
switch (gActors[enemy->aiIndex].aiType) {
|
||||||
case AI360_FALCO:
|
case AI360_FALCO:
|
||||||
ActorAllRange_PlayMessage(gMsg_ID_9160, RCID_FALCO);
|
ActorAllRange_PlayMessage(gMsg_ID_9160, RCID_FALCO);
|
||||||
break;
|
break;
|
||||||
@ -619,8 +614,8 @@ void func_360_8002FC00(Actor* this) {
|
|||||||
ActorAllRange_PlayMessage(gMsg_ID_9180, RCID_PEPPY);
|
ActorAllRange_PlayMessage(gMsg_ID_9180, RCID_PEPPY);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gActors[actor->aiIndex].iwork[3] = 200;
|
gActors[enemy->aiIndex].iwork[3] = 200;
|
||||||
gActors[actor->aiIndex].timer_0C4 = 600;
|
gActors[enemy->aiIndex].timer_0C4 = 600;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -630,7 +625,7 @@ void func_360_8002FC00(Actor* this) {
|
|||||||
bool AllRange_SupplyEvent(void) {
|
bool AllRange_SupplyEvent(void) {
|
||||||
switch (gCurrentLevel) {
|
switch (gCurrentLevel) {
|
||||||
case LEVEL_FORTUNA:
|
case LEVEL_FORTUNA:
|
||||||
return gAllRangeEventTimer == D_360_800C9B4C + 2400;
|
return gAllRangeEventTimer == gAllRangeSpawnEvent + 2400;
|
||||||
case LEVEL_BOLSE:
|
case LEVEL_BOLSE:
|
||||||
return gBosses[2].swork[36] == 4;
|
return gBosses[2].swork[36] == 4;
|
||||||
case LEVEL_KATINA:
|
case LEVEL_KATINA:
|
||||||
@ -814,40 +809,40 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
Vec3f sp48;
|
Vec3f sp48;
|
||||||
Vec3f sp3C;
|
Vec3f sp3C;
|
||||||
|
|
||||||
if (this->dmgType != 0) {
|
if (this->dmgType != DMG_NONE) {
|
||||||
if (this->aiType == AI360_GREAT_FOX) {
|
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->damage = 10;
|
||||||
this->timer_0C2 = 10;
|
this->timer_0C2 = 10;
|
||||||
}
|
}
|
||||||
if (((this->aiType <= AI360_PEPPY) || (this->aiType == AI360_BILL) || (this->aiType == AI360_KATT)) &&
|
if (((this->aiType <= AI360_PEPPY) || (this->aiType == AI360_BILL) || (this->aiType == AI360_KATT)) &&
|
||||||
(this->dmgType == 2)) {
|
(this->dmgType == DMG_EXPLOSION)) {
|
||||||
this->dmgType = 0;
|
this->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
if ((this->dmgType == 2) && (this->fwork[22] > 0.0f)) {
|
if ((this->dmgType == DMG_EXPLOSION) && (this->fwork[22] > 0.0f)) {
|
||||||
this->dmgType = 0;
|
this->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
if (this->fwork[23] > 1.0f) {
|
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;
|
var_a1 = false;
|
||||||
if ((this->unk_0B6 == 3) ||
|
if ((this->unk_0B6 == 3) ||
|
||||||
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != OBJ_FREE) &&
|
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != OBJ_FREE) &&
|
||||||
(this->aiType >= AI360_WOLF)) ||
|
(this->aiType >= AI360_WOLF)) ||
|
||||||
((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_10) &&
|
((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= AI360_WOLF) && (this->aiType < AI360_10) &&
|
||||||
(this->dmgType == 2))) {
|
(this->dmgType == DMG_EXPLOSION))) {
|
||||||
this->damage = 0;
|
this->damage = DMG_NONE;
|
||||||
var_a1 = true;
|
var_a1 = true;
|
||||||
if (gCurrentLevel == LEVEL_BOLSE) {
|
if (gCurrentLevel == LEVEL_BOLSE) {
|
||||||
this->dmgSource = 0;
|
this->dmgSource = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this->aiType >= AI360_WOLF) {
|
if (this->aiType >= AI360_WOLF) {
|
||||||
if (!((this->dmgType == 3) && (this->aiType == AI360_WOLF)) &&
|
if (!((this->dmgType == DMG_COLLISION) && (this->aiType == AI360_WOLF)) &&
|
||||||
!((this->aiType == AI360_MISSILE) && (this->dmgType == 2))) {
|
!((this->aiType == AI360_MISSILE) && (this->dmgType == DMG_EXPLOSION))) {
|
||||||
this->health -= this->damage;
|
this->health -= this->damage;
|
||||||
}
|
}
|
||||||
} else if ((this->aiType <= AI360_PEPPY) && (this->state != STATE360_6)) {
|
} else if ((this->aiType <= AI360_PEPPY) && (this->state != STATE360_6)) {
|
||||||
@ -861,8 +856,8 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
this->health = 0;
|
this->health = 0;
|
||||||
if (this->aiType == AI360_MISSILE) {
|
if (this->aiType == AI360_MISSILE) {
|
||||||
SectorZ_80199900(this, 1);
|
SectorZ_80199900(this, 1);
|
||||||
if (this->dmgSource == 1) {
|
if (this->dmgSource == AI360_FOX + 1) {
|
||||||
if (gActors[8].obj.status == OBJ_ACTIVE) {
|
if (gActors[AI360_KATT].obj.status == OBJ_ACTIVE) {
|
||||||
Radio_PlayMessage(gMsg_ID_16140, RCID_KATT);
|
Radio_PlayMessage(gMsg_ID_16140, RCID_KATT);
|
||||||
}
|
}
|
||||||
BonusText_Display(this->obj.pos.x, this->obj.pos.y, this->obj.pos.z, 10);
|
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;
|
D_ctx_80177850 = 15;
|
||||||
} else {
|
} else {
|
||||||
switch (this->dmgSource) {
|
switch (this->dmgSource) {
|
||||||
case 102:
|
case AI360_FALCO + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_16170, RCID_FALCO);
|
Radio_PlayMessage(gMsg_ID_16170, RCID_FALCO);
|
||||||
break;
|
break;
|
||||||
case 103:
|
case AI360_SLIPPY + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_16180, RCID_SLIPPY);
|
Radio_PlayMessage(gMsg_ID_16180, RCID_SLIPPY);
|
||||||
break;
|
break;
|
||||||
case 104:
|
case AI360_PEPPY + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_16175, RCID_PEPPY);
|
Radio_PlayMessage(gMsg_ID_16175, RCID_PEPPY);
|
||||||
break;
|
break;
|
||||||
case 109:
|
case AI360_KATT + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_16185, RCID_KATT);
|
Radio_PlayMessage(gMsg_ID_16185, RCID_KATT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -925,7 +920,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
if (this->damage >= 20) {
|
if (this->damage >= 20) {
|
||||||
this->timer_0BC = 0;
|
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) {
|
if (gKaAllyKillCount < 2) {
|
||||||
ActorAllRange_PlayMessage(gMsg_ID_18018, RCID_BILL);
|
ActorAllRange_PlayMessage(gMsg_ID_18018, RCID_BILL);
|
||||||
}
|
}
|
||||||
@ -969,7 +964,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
sStarWolfKillTimer = 150;
|
sStarWolfKillTimer = 150;
|
||||||
}
|
}
|
||||||
switch (this->dmgSource) {
|
switch (this->dmgSource) {
|
||||||
case 1:
|
case AI360_FOX + 1:
|
||||||
if (this->aiType >= AI360_10) {
|
if (this->aiType >= AI360_10) {
|
||||||
switch (this->iwork[2]) {
|
switch (this->iwork[2]) {
|
||||||
case AI360_FALCO:
|
case AI360_FALCO:
|
||||||
@ -984,28 +979,28 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 102:
|
case AI360_FALCO + NPC_SHOT_ID + 1:
|
||||||
case 103:
|
case AI360_SLIPPY + NPC_SHOT_ID + 1:
|
||||||
case 104:
|
case AI360_PEPPY + NPC_SHOT_ID + 1:
|
||||||
if ((this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
|
if ((this->aiType >= AI360_WOLF) && (this->aiType <= AI360_ANDREW)) {
|
||||||
if ((gStarWolfTeamAlive[0] + gStarWolfTeamAlive[1] + gStarWolfTeamAlive[2] +
|
if ((gStarWolfTeamAlive[0] + gStarWolfTeamAlive[1] + gStarWolfTeamAlive[2] +
|
||||||
gStarWolfTeamAlive[3]) == 0) {
|
gStarWolfTeamAlive[3]) == 0) {
|
||||||
switch (this->dmgSource) {
|
switch (this->dmgSource) {
|
||||||
case 102:
|
case AI360_FALCO + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_9438, RCID_FALCO);
|
Radio_PlayMessage(gMsg_ID_9438, RCID_FALCO);
|
||||||
break;
|
break;
|
||||||
case 103:
|
case AI360_SLIPPY + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_9436, RCID_SLIPPY);
|
Radio_PlayMessage(gMsg_ID_9436, RCID_SLIPPY);
|
||||||
break;
|
break;
|
||||||
case 104:
|
case AI360_PEPPY + NPC_SHOT_ID + 1:
|
||||||
Radio_PlayMessage(gMsg_ID_9437, RCID_PEPPY);
|
Radio_PlayMessage(gMsg_ID_9437, RCID_PEPPY);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gActors[this->dmgSource - 101].iwork[1] = 80;
|
gActors[this->dmgSource - NPC_SHOT_ID - 1].iwork[1] = 80;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
gActors[this->dmgSource - 101].iwork[1] = 80;
|
gActors[this->dmgSource - NPC_SHOT_ID - 1].iwork[1] = 80;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -1054,7 +1049,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
this->fwork[12] = sp3C.z;
|
this->fwork[12] = sp3C.z;
|
||||||
}
|
}
|
||||||
if ((gRadioState == 0) && (gActors[0].obj.status == OBJ_ACTIVE)) {
|
if ((gRadioState == 0) && (gActors[0].obj.status == OBJ_ACTIVE)) {
|
||||||
if (this->dmgType == 3) {
|
if (this->dmgType == DMG_COLLISION) {
|
||||||
switch (this->aiType) {
|
switch (this->aiType) {
|
||||||
case AI360_FALCO:
|
case AI360_FALCO:
|
||||||
ActorAllRange_PlayMessage(gMsg_ID_20210, RCID_FALCO);
|
ActorAllRange_PlayMessage(gMsg_ID_20210, RCID_FALCO);
|
||||||
@ -1071,7 +1066,7 @@ void ActorAllRange_ApplyDamage(Actor* this) {
|
|||||||
}
|
}
|
||||||
} else if (this->dmgSource <= AI360_PEPPY + 101) {
|
} else if (this->dmgSource <= AI360_PEPPY + 101) {
|
||||||
if (this->aiType >= AI360_WOLF) {
|
if (this->aiType >= AI360_WOLF) {
|
||||||
if (this->dmgSource == 1) {
|
if (this->dmgSource == AI360_FOX + 1) {
|
||||||
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && !gKaKilledAlly) {
|
if ((gCurrentLevel == LEVEL_KATINA) && (this->unk_0B6 == 1) && !gKaKilledAlly) {
|
||||||
gKaKilledAlly = true;
|
gKaKilledAlly = true;
|
||||||
Radio_PlayMessage(gMsg_ID_18015, RCID_BILL);
|
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;
|
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) {
|
void ActorAllRange_Update(Actor* this) {
|
||||||
u8 sp10F;
|
u8 sp10F;
|
||||||
s32 sp108;
|
s32 sp108;
|
||||||
@ -1207,8 +1207,8 @@ void ActorAllRange_Update(Actor* this) {
|
|||||||
Vec3f spA8;
|
Vec3f spA8;
|
||||||
Vec3f sp9C;
|
Vec3f sp9C;
|
||||||
Vec3f sp90;
|
Vec3f sp90;
|
||||||
Vec3f sp84 = D_360_800C9B98;
|
Vec3f sp84 = { 60.0f, 0.0f, -170.0f };
|
||||||
Vec3f sp78 = D_360_800C9BA4;
|
Vec3f sp78 = { -60.0f, 0.0f, -170.0f };
|
||||||
s32 pad1;
|
s32 pad1;
|
||||||
s32 pad2;
|
s32 pad2;
|
||||||
s32 pad3;
|
s32 pad3;
|
||||||
@ -1380,11 +1380,11 @@ void ActorAllRange_Update(Actor* this) {
|
|||||||
gTeamShields[this->aiType] = -1;
|
gTeamShields[this->aiType] = -1;
|
||||||
gTeamDamage[this->aiType] = 0;
|
gTeamDamage[this->aiType] = 0;
|
||||||
if (gCurrentLevel == LEVEL_SECTOR_Z) {
|
if (gCurrentLevel == LEVEL_SECTOR_Z) {
|
||||||
this->fwork[4] = D_360_800C9B50[this->unk_046].x;
|
this->fwork[4] = sSectorZRetreatPath[this->unk_046].x;
|
||||||
this->fwork[5] = D_360_800C9B50[this->unk_046].y;
|
this->fwork[5] = sSectorZRetreatPath[this->unk_046].y;
|
||||||
this->fwork[6] = D_360_800C9B50[this->unk_046].z;
|
this->fwork[6] = sSectorZRetreatPath[this->unk_046].z;
|
||||||
if ((fabsf(this->obj.pos.x - D_360_800C9B50[this->unk_046].x) < 800.0f) &&
|
if ((fabsf(this->obj.pos.x - sSectorZRetreatPath[this->unk_046].x) < 800.0f) &&
|
||||||
(fabsf(this->obj.pos.z - D_360_800C9B50[this->unk_046].z) < 800.0f)) {
|
(fabsf(this->obj.pos.z - sSectorZRetreatPath[this->unk_046].z) < 800.0f)) {
|
||||||
this->unk_046++;
|
this->unk_046++;
|
||||||
if (this->unk_046 >= 4) {
|
if (this->unk_046 >= 4) {
|
||||||
Object_Kill(&this->obj, this->sfxSource);
|
Object_Kill(&this->obj, this->sfxSource);
|
||||||
@ -1751,7 +1751,7 @@ void ActorAllRange_Update(Actor* this) {
|
|||||||
(gActors[this->aiIndex].obj.status == OBJ_FREE))) {
|
(gActors[this->aiIndex].obj.status == OBJ_FREE))) {
|
||||||
this->state = STATE360_3;
|
this->state = STATE360_3;
|
||||||
if (gCurrentLevel == LEVEL_BOLSE) {
|
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) {
|
if (Rand_ZeroOne() < 0.8f) {
|
||||||
spA8.x = 60.0f;
|
spA8.x = 60.0f;
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
|
||||||
func_enmy2_8006EEFC(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
|
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.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.pos.z + sp9C.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z,
|
||||||
this->obj.rot.y, this->obj.rot.z);
|
this->obj.rot.x, this->obj.rot.y, this->obj.rot.z);
|
||||||
}
|
}
|
||||||
if (Rand_ZeroOne() < 0.8f) {
|
if (Rand_ZeroOne() < 0.8f) {
|
||||||
spA8.x = -60.0f;
|
spA8.x = -60.0f;
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
|
||||||
func_enmy2_8006EEFC(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
|
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.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.pos.z + sp9C.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z,
|
||||||
this->obj.rot.y, this->obj.rot.z);
|
this->obj.rot.x, this->obj.rot.y, this->obj.rot.z);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
func_enmy2_8006EEFC(this->aiType, this->obj.pos.x + (sp90.x * 1.5f), this->obj.pos.y + (sp90.y * 1.5f),
|
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.pos.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x,
|
||||||
this->obj.rot.y, this->obj.rot.z);
|
this->obj.rot.y, this->obj.rot.z);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ActorAllRange_ApplyDamage(this);
|
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_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);
|
func_effect_8007A6F0(&this->obj.pos, 0x2903A008);
|
||||||
} else {
|
} else {
|
||||||
this->dmgType = 1;
|
this->dmgType = DMG_BEAM;
|
||||||
this->damage = 10;
|
this->damage = 10;
|
||||||
this->health = 0;
|
this->health = 0;
|
||||||
ActorAllRange_ApplyDamage(this);
|
ActorAllRange_ApplyDamage(this);
|
||||||
|
@ -56,7 +56,7 @@ void func_beam_80035E78(PlayerShot* shot) {
|
|||||||
shot->unk_5C = 1;
|
shot->unk_5C = 1;
|
||||||
shot->unk_64 = 30;
|
shot->unk_64 = 30;
|
||||||
shot->unk_58 = 150;
|
shot->unk_58 = 150;
|
||||||
Audio_PlayBombExplodeSfx(shot->playerNum, shot->sfxSource);
|
Audio_PlayBombExplodeSfx(shot->sourceId, shot->sfxSource);
|
||||||
gScreenFlashTimer = 4;
|
gScreenFlashTimer = 4;
|
||||||
if (shot->obj.pos.y < (gGroundHeight + 450.0f)) {
|
if (shot->obj.pos.y < (gGroundHeight + 450.0f)) {
|
||||||
gCameraShake = 15;
|
gCameraShake = 15;
|
||||||
@ -88,7 +88,7 @@ void func_beam_80035E78(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
var_v0 = shot->playerNum + 10;
|
var_v0 = shot->sourceId + 10;
|
||||||
} else {
|
} else {
|
||||||
var_v0 = 0;
|
var_v0 = 0;
|
||||||
}
|
}
|
||||||
@ -139,7 +139,7 @@ void func_beam_80036318(PlayerShot* shot) {
|
|||||||
} else if (shot->obj.id == PLAYERSHOT_8) {
|
} else if (shot->obj.id == PLAYERSHOT_8) {
|
||||||
shot->scale = 7.5f;
|
shot->scale = 7.5f;
|
||||||
for (i = 0; i < ARRAY_COUNT(gActors); i++) {
|
for (i = 0; i < ARRAY_COUNT(gActors); i++) {
|
||||||
gActors[i].lockOnTimers[shot->playerNum] = 0;
|
gActors[i].lockOnTimers[shot->sourceId] = 0;
|
||||||
}
|
}
|
||||||
shot->vel.x = shot->vel.y = shot->vel.z = 0.0f;
|
shot->vel.x = shot->vel.y = shot->vel.z = 0.0f;
|
||||||
if (gCurrentLevel == LEVEL_AQUAS) {
|
if (gCurrentLevel == LEVEL_AQUAS) {
|
||||||
@ -149,7 +149,7 @@ void func_beam_80036318(PlayerShot* shot) {
|
|||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
var_v0_2 = shot->playerNum + 10;
|
var_v0_2 = shot->sourceId + 10;
|
||||||
} else {
|
} else {
|
||||||
var_v0_2 = 12;
|
var_v0_2 = 12;
|
||||||
}
|
}
|
||||||
@ -256,8 +256,8 @@ s32 func_beam_80036874(PlayerShot* shot, f32* hitboxData, Object* obj) {
|
|||||||
count = *hitboxData;
|
count = *hitboxData;
|
||||||
if (count != 0) {
|
if (count != 0) {
|
||||||
xySizeMod = 10.0f;
|
xySizeMod = 10.0f;
|
||||||
if ((shot->playerNum < 4) &&
|
if ((shot->sourceId < 4) &&
|
||||||
((gLaserStrength[shot->playerNum] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) {
|
((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) {
|
||||||
xySizeMod += 30.0f;
|
xySizeMod += 30.0f;
|
||||||
}
|
}
|
||||||
hitboxData++;
|
hitboxData++;
|
||||||
@ -368,8 +368,8 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) {
|
|||||||
xySizeMod = 0.0f;
|
xySizeMod = 0.0f;
|
||||||
if (actor->info.unk_16 == 1) {
|
if (actor->info.unk_16 == 1) {
|
||||||
xySizeMod = fabsf((actor->obj.pos.z + gPathProgress) / 50.0f) + 10.0f;
|
xySizeMod = fabsf((actor->obj.pos.z + gPathProgress) / 50.0f) + 10.0f;
|
||||||
if ((shot->playerNum < 4) &&
|
if ((shot->sourceId < 4) &&
|
||||||
((gLaserStrength[shot->playerNum] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) {
|
((gLaserStrength[shot->sourceId] != LASERS_SINGLE) || (shot->obj.id == PLAYERSHOT_8))) {
|
||||||
xySizeMod += 30.0f;
|
xySizeMod += 30.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -394,7 +394,7 @@ s32 func_beam_80036F88(PlayerShot* shot, Actor* actor) {
|
|||||||
}
|
}
|
||||||
if (((actor->vwork[29].z != 0.0f) || (actor->vwork[29].x != 0.0f) || (actor->unk_0F4.z != 0.0f) ||
|
if (((actor->vwork[29].z != 0.0f) || (actor->vwork[29].x != 0.0f) || (actor->unk_0F4.z != 0.0f) ||
|
||||||
(actor->vwork[29].y != 0.0f)) &&
|
(actor->vwork[29].y != 0.0f)) &&
|
||||||
(actor->unk_0B4 != EINFO_31)) {
|
(actor->unk_0B4 != EVID_31)) {
|
||||||
Matrix_RotateZ(gCalcMatrix, -(actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, MTXF_APPLY);
|
Matrix_RotateZ(gCalcMatrix, -(actor->vwork[29].z + actor->unk_0F4.z) * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_RotateX(gCalcMatrix, -actor->vwork[29].x * M_DTOR, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, -actor->vwork[29].x * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_RotateY(gCalcMatrix, -actor->vwork[29].y * M_DTOR, MTXF_APPLY);
|
Matrix_RotateY(gCalcMatrix, -actor->vwork[29].y * M_DTOR, MTXF_APPLY);
|
||||||
@ -427,7 +427,7 @@ bool func_beam_80037438(PlayerShot* shot, Actor* actor) {
|
|||||||
f32* hitboxData = actor->info.hitbox;
|
f32* hitboxData = actor->info.hitbox;
|
||||||
|
|
||||||
if (((s32) hitboxData[0] != 0) && (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) <= 500.0f)) {
|
if (((s32) hitboxData[0] != 0) && (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) <= 500.0f)) {
|
||||||
if (shot->playerNum < 4) {
|
if (shot->sourceId < 4) {
|
||||||
temp_fv1 = actor->obj.pos.x - gPlayer[0].cam.eye.x;
|
temp_fv1 = actor->obj.pos.x - gPlayer[0].cam.eye.x;
|
||||||
temp_fa0 = actor->obj.pos.z + gPathProgress - gPlayer[0].cam.eye.z;
|
temp_fa0 = actor->obj.pos.z + gPathProgress - gPlayer[0].cam.eye.z;
|
||||||
var_fa1 = (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) / 50.0f) + 20.0f + 10.0f;
|
var_fa1 = (sqrtf(SQ(temp_fv1) + SQ(temp_fa0)) / 50.0f) + 20.0f + 10.0f;
|
||||||
@ -436,7 +436,7 @@ bool func_beam_80037438(PlayerShot* shot, Actor* actor) {
|
|||||||
}
|
}
|
||||||
if (shotx->id == PLAYERSHOT_8) {
|
if (shotx->id == PLAYERSHOT_8) {
|
||||||
var_fa1 = 30.0f;
|
var_fa1 = 30.0f;
|
||||||
} else if (gLaserStrength[shot->playerNum] != LASERS_SINGLE) {
|
} else if (gLaserStrength[shot->sourceId] != LASERS_SINGLE) {
|
||||||
var_fa1 += 30.0f;
|
var_fa1 += 30.0f;
|
||||||
}
|
}
|
||||||
if (fabsf(hitboxData[1] + actor->obj.pos.z - shotx->pos.z) < (hitboxData[2] + var_fa1)) {
|
if (fabsf(hitboxData[1] + actor->obj.pos.z - shotx->pos.z) < (hitboxData[2] + var_fa1)) {
|
||||||
@ -652,12 +652,12 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
|
|||||||
Vec3f sp44 = { 0.0f, 0.0f, -100.0f };
|
Vec3f sp44 = { 0.0f, 0.0f, -100.0f };
|
||||||
Vec3f sp38;
|
Vec3f sp38;
|
||||||
|
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->dmgPart = hitIndex - 1;
|
actor->dmgPart = hitIndex - 1;
|
||||||
actor->timer_0C2 = 2;
|
actor->timer_0C2 = 2;
|
||||||
actor->damage = 10;
|
actor->damage = 10;
|
||||||
if ((shot->playerNum < 4) && (gPlayer[shot->playerNum].form != FORM_LANDMASTER)) {
|
if ((shot->sourceId < 4) && (gPlayer[shot->sourceId].form != FORM_LANDMASTER)) {
|
||||||
switch (gLaserStrength[shot->playerNum]) {
|
switch (gLaserStrength[shot->sourceId]) {
|
||||||
case LASERS_TWIN:
|
case LASERS_TWIN:
|
||||||
actor->damage = 12;
|
actor->damage = 12;
|
||||||
break;
|
break;
|
||||||
@ -665,9 +665,9 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
|
|||||||
actor->damage = 15;
|
actor->damage = 15;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if ((shot->playerNum >= 100) && (gCurrentLevel == LEVEL_SECTOR_X)) {
|
} else if ((shot->sourceId >= NPC_SHOT_ID) && (gCurrentLevel == LEVEL_SECTOR_X)) {
|
||||||
if ((gActors[shot->playerNum - 100].obj.id == OBJ_ACTOR_EVENT) &&
|
if ((gActors[shot->sourceId - NPC_SHOT_ID].obj.id == OBJ_ACTOR_EVENT) &&
|
||||||
(gActors[shot->playerNum - 100].iwork[12] == TEAM_ID_BILL)) {
|
(gActors[shot->sourceId - NPC_SHOT_ID].iwork[12] == TEAM_ID_BILL)) {
|
||||||
actor->damage = 30;
|
actor->damage = 30;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -677,19 +677,19 @@ void func_beam_80037CF4(PlayerShot* shot, Actor* actor, s32 hitIndex) {
|
|||||||
if (gCurrentLevel == LEVEL_AQUAS) {
|
if (gCurrentLevel == LEVEL_AQUAS) {
|
||||||
actor->damage = 31;
|
actor->damage = 31;
|
||||||
} else {
|
} else {
|
||||||
actor->dmgType = 2;
|
actor->dmgType = DMG_EXPLOSION;
|
||||||
actor->damage = 30;
|
actor->damage = 30;
|
||||||
actor->lockOnTimers[shot->playerNum] = 0;
|
actor->lockOnTimers[shot->sourceId] = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
actor->dmgSource = shot->playerNum + 1;
|
actor->dmgSource = shot->sourceId + 1;
|
||||||
actor->hitPos.x = shot->obj.pos.x;
|
actor->hitPos.x = shot->obj.pos.x;
|
||||||
actor->hitPos.y = shot->obj.pos.y;
|
actor->hitPos.y = shot->obj.pos.y;
|
||||||
actor->hitPos.z = shot->obj.pos.z;
|
actor->hitPos.z = shot->obj.pos.z;
|
||||||
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) &&
|
if (((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) &&
|
||||||
((actor->unk_0B4 == EINFO_48) || (actor->unk_0B4 == EINFO_49) || (actor->unk_0B4 == EINFO_50))) ||
|
((actor->unk_0B4 == EVID_48) || (actor->unk_0B4 == EVID_49) || (actor->unk_0B4 == EVID_50))) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
|
((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->fwork[23] > 1.0f)) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) && (actor->unk_0B4 == EINFO_67)) ||
|
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->dmgPart == 0) && (actor->unk_0B4 == EVID_67)) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) &&
|
((actor->obj.id == OBJ_ACTOR_261) && (shot->obj.id != PLAYERSHOT_8) &&
|
||||||
((actor->state < 3) || (actor->state >= 5))) ||
|
((actor->state < 3) || (actor->state >= 5))) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) {
|
((actor->obj.id == OBJ_ACTOR_260) && (shot->obj.id != PLAYERSHOT_8) && (actor->timer_0BC != 0))) {
|
||||||
@ -760,19 +760,19 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
switch (actor->obj.id) {
|
switch (actor->obj.id) {
|
||||||
case OBJ_ACTOR_180:
|
case OBJ_ACTOR_180:
|
||||||
if (func_beam_8003774C(shot, actor->obj.id, &actor->obj)) {
|
if (func_beam_8003774C(shot, actor->obj.id, &actor->obj)) {
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->dmgPart = shot->playerNum;
|
actor->dmgPart = shot->sourceId;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case OBJ_ACTOR_EVENT:
|
case OBJ_ACTOR_EVENT:
|
||||||
if (actor->unk_0B4 == EINFO_42) {
|
if (actor->unk_0B4 == EVID_42) {
|
||||||
if (func_beam_8003774C(shot, ACTOR_EVENT_ID, &actor->obj)) {
|
if (func_beam_8003774C(shot, ACTOR_EVENT_ID, &actor->obj)) {
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->dmgPart = shot->playerNum;
|
actor->dmgPart = shot->sourceId;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} else if (actor->unk_0B4 == EINFO_63) {
|
} else if (actor->unk_0B4 == EVID_63) {
|
||||||
test.x = fabsf(actor->obj.pos.x - shot->obj.pos.x);
|
test.x = fabsf(actor->obj.pos.x - shot->obj.pos.x);
|
||||||
test.y = fabsf(actor->obj.pos.y - shot->obj.pos.y);
|
test.y = fabsf(actor->obj.pos.y - shot->obj.pos.y);
|
||||||
test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z);
|
test.z = fabsf(actor->obj.pos.z - shot->obj.pos.z);
|
||||||
@ -791,8 +791,9 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
if (actor->info.unk_16 != 0) {
|
if (actor->info.unk_16 != 0) {
|
||||||
if (actor->obj.id == OBJ_ACTOR_ALLRANGE) {
|
if (actor->obj.id == OBJ_ACTOR_ALLRANGE) {
|
||||||
if ((actor->aiType >= AI360_WOLF) && (actor->aiType < AI360_10) &&
|
if ((actor->aiType >= AI360_WOLF) && (actor->aiType < AI360_10) &&
|
||||||
(((gCurrentLevel == LEVEL_VENOM_2) && (shot->playerNum < 104)) ||
|
(((gCurrentLevel == LEVEL_VENOM_2) &&
|
||||||
((gCurrentLevel != LEVEL_VENOM_2) && (shot->playerNum == 0))) &&
|
(shot->sourceId <= NPC_SHOT_ID + AI360_PEPPY)) ||
|
||||||
|
((gCurrentLevel != LEVEL_VENOM_2) && (shot->sourceId == AI360_FOX))) &&
|
||||||
(shot->obj.id != PLAYERSHOT_8) &&
|
(shot->obj.id != PLAYERSHOT_8) &&
|
||||||
(fabsf(actor->obj.pos.x - shot->obj.pos.x) < 500.0f) &&
|
(fabsf(actor->obj.pos.x - shot->obj.pos.x) < 500.0f) &&
|
||||||
(fabsf(actor->obj.pos.y - shot->obj.pos.y) < 300.0f) &&
|
(fabsf(actor->obj.pos.y - shot->obj.pos.y) < 300.0f) &&
|
||||||
@ -823,8 +824,8 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
if (gLevelMode == LEVELMODE_ALL_RANGE) {
|
if (gLevelMode == LEVELMODE_ALL_RANGE) {
|
||||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||||
test.x = 50.0f;
|
test.x = 50.0f;
|
||||||
if (gVersusMode && (shot->playerNum < 4) &&
|
if (gVersusMode && (shot->sourceId < 4) &&
|
||||||
!((gLaserStrength[shot->playerNum] == LASERS_SINGLE) && (shot->obj.id != PLAYERSHOT_8))) {
|
!((gLaserStrength[shot->sourceId] == LASERS_SINGLE) && (shot->obj.id != PLAYERSHOT_8))) {
|
||||||
test.x = 100.0f;
|
test.x = 100.0f;
|
||||||
}
|
}
|
||||||
if (player->barrelRollAlpha >= 100) {
|
if (player->barrelRollAlpha >= 100) {
|
||||||
@ -839,7 +840,7 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
test.y = test.x;
|
test.y = test.x;
|
||||||
}
|
}
|
||||||
test.z = test.x;
|
test.z = test.x;
|
||||||
if ((i != shot->playerNum) &&
|
if ((i != shot->sourceId) &&
|
||||||
((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_DOWN)) &&
|
((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_DOWN)) &&
|
||||||
(fabsf(player->trueZpos - shot->obj.pos.z) < test.z) &&
|
(fabsf(player->trueZpos - shot->obj.pos.z) < test.z) &&
|
||||||
(fabsf(player->pos.x - shot->obj.pos.x) < test.x) &&
|
(fabsf(player->pos.x - shot->obj.pos.x) < test.x) &&
|
||||||
@ -871,7 +872,7 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
player->unk_284 = 1;
|
player->unk_284 = 1;
|
||||||
if (gCamCount != 1) {
|
if (gCamCount != 1) {
|
||||||
player->unk_288 = shot->playerNum + 1;
|
player->unk_288 = shot->sourceId + 1;
|
||||||
}
|
}
|
||||||
player->knockback.x = shot->vel.x * 0.1f;
|
player->knockback.x = shot->vel.x * 0.1f;
|
||||||
player->knockback.y = shot->vel.y * 0.1f;
|
player->knockback.y = shot->vel.y * 0.1f;
|
||||||
@ -898,7 +899,7 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (shot->playerNum < 110)) {
|
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (shot->sourceId < 110)) {
|
||||||
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
|
for (i = 0, scenery360 = gScenery360; i < 200; i++, scenery360++) {
|
||||||
if (scenery360->obj.status == OBJ_ACTIVE) {
|
if (scenery360->obj.status == OBJ_ACTIVE) {
|
||||||
if ((scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_141) ||
|
if ((scenery360->obj.id == OBJ_SCENERY_117) || (scenery360->obj.id == OBJ_SCENERY_141) ||
|
||||||
@ -926,7 +927,7 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
} else {
|
} else {
|
||||||
temp_v0 = func_beam_80036874(shot, scenery->info.hitbox, &scenery->obj);
|
temp_v0 = func_beam_80036874(shot, scenery->info.hitbox, &scenery->obj);
|
||||||
if (temp_v0 != 0) {
|
if (temp_v0 != 0) {
|
||||||
scenery->dmgType = 1;
|
scenery->dmgType = DMG_BEAM;
|
||||||
scenery->dmgPart = temp_v0 - 1;
|
scenery->dmgPart = temp_v0 - 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -987,7 +988,7 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
if (shot->obj.id == PLAYERSHOT_4) {
|
if (shot->obj.id == PLAYERSHOT_4) {
|
||||||
Object_Kill(&shot->obj, shot->sfxSource);
|
Object_Kill(&shot->obj, shot->sfxSource);
|
||||||
} else {
|
} else {
|
||||||
if ((boss->obj.id == OBJ_BOSS_316) && (shot->playerNum != 0)) {
|
if ((boss->obj.id == OBJ_BOSS_316) && (shot->sourceId != TEAM_ID_FOX)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
boss->dmgType = DMG_BEAM;
|
boss->dmgType = DMG_BEAM;
|
||||||
@ -1002,8 +1003,8 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
boss->damage = 10;
|
boss->damage = 10;
|
||||||
if (shot->playerNum < 4) {
|
if (shot->sourceId < 4) {
|
||||||
switch (gLaserStrength[shot->playerNum]) {
|
switch (gLaserStrength[shot->sourceId]) {
|
||||||
case LASERS_SINGLE:
|
case LASERS_SINGLE:
|
||||||
case LASERS_TWIN:
|
case LASERS_TWIN:
|
||||||
break;
|
break;
|
||||||
@ -1014,7 +1015,7 @@ void func_beam_80038140(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (boss->obj.id == OBJ_BOSS_314) {
|
if (boss->obj.id == OBJ_BOSS_314) {
|
||||||
boss->swork[19] = shot->playerNum;
|
boss->swork[19] = shot->sourceId;
|
||||||
}
|
}
|
||||||
boss->dmgPart = temp_v0 - 1;
|
boss->dmgPart = temp_v0 - 1;
|
||||||
if (boss->obj.id == OBJ_BOSS_301) {
|
if (boss->obj.id == OBJ_BOSS_301) {
|
||||||
@ -1114,23 +1115,24 @@ void func_beam_80039210(PlayerShot* shot) {
|
|||||||
gSPDisplayList(gMasterDisp++, sp6C);
|
gSPDisplayList(gMasterDisp++, sp6C);
|
||||||
} else {
|
} else {
|
||||||
var_a1 = 0;
|
var_a1 = 0;
|
||||||
if ((gCurrentLevel != LEVEL_KATINA) && (shot->playerNum >= 104) && (shot->playerNum != 108)) {
|
if ((gCurrentLevel != LEVEL_KATINA) && (shot->sourceId > NPC_SHOT_ID + AI360_PEPPY) &&
|
||||||
if (gActors[shot->playerNum - 100].obj.id != OBJ_ACTOR_EVENT) {
|
(shot->sourceId != NPC_SHOT_ID + AI360_KATT)) {
|
||||||
|
if (gActors[shot->sourceId - NPC_SHOT_ID].obj.id != OBJ_ACTOR_EVENT) {
|
||||||
var_a1 = 1;
|
var_a1 = 1;
|
||||||
} else if (gActors[shot->playerNum - 100].iwork[12] == TEAM_ID_BILL) {
|
} else if (gActors[shot->sourceId - NPC_SHOT_ID].iwork[12] == TEAM_ID_BILL) {
|
||||||
var_a1 = 2;
|
var_a1 = 2;
|
||||||
}
|
}
|
||||||
} else if (gCurrentLevel == LEVEL_KATINA) {
|
} else if (gCurrentLevel == LEVEL_KATINA) {
|
||||||
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO) {
|
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_LEVEL_INTRO) {
|
||||||
if (shot->playerNum >= 104) {
|
if (shot->sourceId > NPC_SHOT_ID + AI360_PEPPY) {
|
||||||
if (gActors[shot->playerNum - 100].unk_0B6 == 0) {
|
if (gActors[shot->sourceId - NPC_SHOT_ID].unk_0B6 == 0) {
|
||||||
var_a1 = 1;
|
var_a1 = 1;
|
||||||
}
|
}
|
||||||
if (gActors[shot->playerNum - 100].unk_0B6 == 2) {
|
if (gActors[shot->sourceId - NPC_SHOT_ID].unk_0B6 == 2) {
|
||||||
var_a1 = 2;
|
var_a1 = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (gActors[shot->playerNum - 100].unk_0B6 == 34) {
|
} else if (gActors[shot->sourceId - NPC_SHOT_ID].unk_0B6 == 34) {
|
||||||
var_a1 = 1;
|
var_a1 = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1177,7 +1179,7 @@ void func_beam_80039210(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
RCP_SetupDL_64();
|
RCP_SetupDL_64();
|
||||||
switch (shot->playerNum) {
|
switch (shot->sourceId) {
|
||||||
case 0:
|
case 0:
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 32, 255);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 32, 255);
|
||||||
break;
|
break;
|
||||||
@ -1194,7 +1196,7 @@ void func_beam_80039210(PlayerShot* shot) {
|
|||||||
Matrix_Scale(gGfxMatrix, 6.0f, 4.0f, 10.0f, MTXF_APPLY);
|
Matrix_Scale(gGfxMatrix, 6.0f, 4.0f, 10.0f, MTXF_APPLY);
|
||||||
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
|
Matrix_RotateY(gGfxMatrix, M_PI, MTXF_APPLY);
|
||||||
Matrix_SetGfxMtx(&gMasterDisp);
|
Matrix_SetGfxMtx(&gMasterDisp);
|
||||||
if (gLaserStrength[shot->playerNum] != LASERS_SINGLE) {
|
if (gLaserStrength[shot->sourceId] != LASERS_SINGLE) {
|
||||||
Matrix_Translate(gGfxMatrix, 6.0f, 0.0f, 0.0f, MTXF_APPLY);
|
Matrix_Translate(gGfxMatrix, 6.0f, 0.0f, 0.0f, MTXF_APPLY);
|
||||||
Matrix_SetGfxMtx(&gMasterDisp);
|
Matrix_SetGfxMtx(&gMasterDisp);
|
||||||
gSPDisplayList(gMasterDisp++, D_versus_302D120);
|
gSPDisplayList(gMasterDisp++, D_versus_302D120);
|
||||||
@ -1272,7 +1274,7 @@ void func_beam_80039A50(PlayerShot* shot) {
|
|||||||
RCP_SetupDL(&gMasterDisp, 0x31);
|
RCP_SetupDL(&gMasterDisp, 0x31);
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
switch (shot->playerNum) {
|
switch (shot->sourceId) {
|
||||||
case 0:
|
case 0:
|
||||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 128);
|
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 128);
|
||||||
break;
|
break;
|
||||||
@ -1297,7 +1299,7 @@ void func_beam_80039A50(PlayerShot* shot) {
|
|||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
RCP_SetupDL_49();
|
RCP_SetupDL_49();
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, shot->unk_58);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, shot->unk_58);
|
||||||
switch (shot->playerNum) {
|
switch (shot->sourceId) {
|
||||||
case 0:
|
case 0:
|
||||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, shot->unk_58);
|
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, shot->unk_58);
|
||||||
break;
|
break;
|
||||||
@ -1323,10 +1325,10 @@ void func_beam_80039A50(PlayerShot* shot) {
|
|||||||
RCP_SetupDL_40();
|
RCP_SetupDL_40();
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||||
gDPSetEnvColor(gMasterDisp++, D_800C9C00[shot->playerNum], D_800C9C04[shot->playerNum],
|
gDPSetEnvColor(gMasterDisp++, D_800C9C00[shot->sourceId], D_800C9C04[shot->sourceId],
|
||||||
D_800C9C08[shot->playerNum], 255);
|
D_800C9C08[shot->sourceId], 255);
|
||||||
RCP_SetupDL(&gMasterDisp, 0x31);
|
RCP_SetupDL(&gMasterDisp, 0x31);
|
||||||
if (gLaserStrength[shot->playerNum] != LASERS_SINGLE) {
|
if (gLaserStrength[shot->sourceId] != LASERS_SINGLE) {
|
||||||
Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 48.0f * M_DTOR, MTXF_APPLY);
|
Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 48.0f * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_Push(&gGfxMatrix);
|
Matrix_Push(&gGfxMatrix);
|
||||||
Matrix_Translate(gGfxMatrix, 0.f, 50.0f, 0.0f, MTXF_APPLY);
|
Matrix_Translate(gGfxMatrix, 0.f, 50.0f, 0.0f, MTXF_APPLY);
|
||||||
@ -1375,9 +1377,9 @@ void func_beam_80039A50(PlayerShot* shot) {
|
|||||||
Matrix_SetGfxMtx(&gMasterDisp);
|
Matrix_SetGfxMtx(&gMasterDisp);
|
||||||
RCP_SetupDL(&gMasterDisp, 0x31);
|
RCP_SetupDL(&gMasterDisp, 0x31);
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||||
gDPSetEnvColor(gMasterDisp++, D_800C9C00[shot->playerNum], D_800C9C04[shot->playerNum],
|
gDPSetEnvColor(gMasterDisp++, D_800C9C00[shot->sourceId], D_800C9C04[shot->sourceId],
|
||||||
D_800C9C08[shot->playerNum], 255);
|
D_800C9C08[shot->sourceId], 255);
|
||||||
if (gLaserStrength[shot->playerNum] != LASERS_SINGLE) {
|
if (gLaserStrength[shot->sourceId] != LASERS_SINGLE) {
|
||||||
Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 48.0f * M_DTOR, MTXF_APPLY);
|
Matrix_RotateZ(gGfxMatrix, gGameFrameCount * 48.0f * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_Push(&gGfxMatrix);
|
Matrix_Push(&gGfxMatrix);
|
||||||
Matrix_Translate(gGfxMatrix, 0.f, 40.0f, 0.0f, MTXF_APPLY);
|
Matrix_Translate(gGfxMatrix, 0.f, 40.0f, 0.0f, MTXF_APPLY);
|
||||||
@ -1420,7 +1422,7 @@ void func_beam_80039A50(PlayerShot* shot) {
|
|||||||
RCP_SetupDL(&gMasterDisp, 0x31);
|
RCP_SetupDL(&gMasterDisp, 0x31);
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
switch (shot->playerNum) {
|
switch (shot->sourceId) {
|
||||||
case 0:
|
case 0:
|
||||||
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 255);
|
gDPSetEnvColor(gMasterDisp++, 255, 255, 32, 255);
|
||||||
break;
|
break;
|
||||||
@ -1611,7 +1613,7 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) {
|
|||||||
func_effect_8007A6F0(&shot->obj.pos, 0x29121007);
|
func_effect_8007A6F0(&shot->obj.pos, 0x29121007);
|
||||||
}
|
}
|
||||||
if ((gCamCount != 4) && (gCurrentLevel != LEVEL_AQUAS)) {
|
if ((gCamCount != 4) && (gCurrentLevel != LEVEL_AQUAS)) {
|
||||||
if ((shot->playerNum == 0) && (gLaserStrength[0] != LASERS_SINGLE) &&
|
if ((shot->sourceId == TEAM_ID_FOX) && (gLaserStrength[0] != LASERS_SINGLE) &&
|
||||||
(gPlayer[0].form != FORM_LANDMASTER)) {
|
(gPlayer[0].form != FORM_LANDMASTER)) {
|
||||||
Matrix_RotateY(gCalcMatrix, shot->obj.rot.y * M_DTOR, MTXF_NEW);
|
Matrix_RotateY(gCalcMatrix, shot->obj.rot.y * M_DTOR, MTXF_NEW);
|
||||||
Matrix_RotateX(gCalcMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, shot->obj.rot.x * M_DTOR, MTXF_APPLY);
|
||||||
@ -1653,7 +1655,7 @@ void func_beam_8003B55C(PlayerShot* shot, s32 index) {
|
|||||||
if (shot->unk_64 == 0) {
|
if (shot->unk_64 == 0) {
|
||||||
Object_Kill(&shot->obj, shot->sfxSource);
|
Object_Kill(&shot->obj, shot->sfxSource);
|
||||||
return;
|
return;
|
||||||
} else if ((shot->playerNum < 110) || ((shot->unk_64 % 2) != 0)) {
|
} else if ((shot->sourceId < NPC_SHOT_ID + AI360_10) || ((shot->unk_64 % 2) != 0)) {
|
||||||
func_beam_80038140(shot);
|
func_beam_80038140(shot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1699,39 +1701,39 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
|
|||||||
}
|
}
|
||||||
for (i = 0, actor = gActors; i < 60; i++, actor++) {
|
for (i = 0, actor = gActors; i < 60; i++, actor++) {
|
||||||
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) &&
|
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) &&
|
||||||
((actor->lockOnTimers[shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) &&
|
((actor->lockOnTimers[shot->sourceId] == 0) && (fabsf(shot->obj.pos.x - actor->obj.pos.x) <= var_fa0) &&
|
||||||
(fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.targetOffset)) <= var_fa0) &&
|
(fabsf(shot->obj.pos.y - (actor->obj.pos.y + actor->info.targetOffset)) <= var_fa0) &&
|
||||||
(fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) {
|
(fabsf(shot->obj.pos.z - actor->obj.pos.z) <= var_fa0))) {
|
||||||
actor->lockOnTimers[shot->playerNum] = 20;
|
actor->lockOnTimers[shot->sourceId] = 20;
|
||||||
func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum);
|
func_enmy_80060F30(gPlayer[shot->sourceId].sfxSource, 0x49008027, shot->sourceId);
|
||||||
for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) {
|
for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) {
|
||||||
if (gPlayerShots[j].obj.id == PLAYERSHOT_4) {
|
if (gPlayerShots[j].obj.id == PLAYERSHOT_4) {
|
||||||
Object_Kill(&gPlayerShots[j].obj, gPlayerShots[j].sfxSource);
|
Object_Kill(&gPlayerShots[j].obj, gPlayerShots[j].sfxSource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
D_display_801615B8[shot->playerNum] = 3.0f;
|
D_display_801615B8[shot->sourceId] = 3.0f;
|
||||||
D_display_801615A8[shot->playerNum] = 300.0f;
|
D_display_801615A8[shot->sourceId] = 300.0f;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||||
if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !player->somersault &&
|
if ((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && !player->somersault &&
|
||||||
(player->form != FORM_ON_FOOT) && (i != shot->playerNum) &&
|
(player->form != FORM_ON_FOOT) && (i != shot->sourceId) && (gVsLockOnTimers[i][shot->sourceId] == 0) &&
|
||||||
(gVsLockOnTimers[i][shot->playerNum] == 0) && (fabsf(shot->obj.pos.x - player->pos.x) <= var_fa0) &&
|
(fabsf(shot->obj.pos.x - player->pos.x) <= var_fa0) &&
|
||||||
(fabsf(shot->obj.pos.y - player->pos.y) <= var_fa0) &&
|
(fabsf(shot->obj.pos.y - player->pos.y) <= var_fa0) &&
|
||||||
(fabsf(shot->obj.pos.z - player->trueZpos) <= var_fa0)) {
|
(fabsf(shot->obj.pos.z - player->trueZpos) <= var_fa0)) {
|
||||||
gVsLockOnTimers[0][shot->playerNum] = gVsLockOnTimers[1][shot->playerNum] =
|
gVsLockOnTimers[0][shot->sourceId] = gVsLockOnTimers[1][shot->sourceId] =
|
||||||
gVsLockOnTimers[2][shot->playerNum] = gVsLockOnTimers[3][shot->playerNum] = 0;
|
gVsLockOnTimers[2][shot->sourceId] = gVsLockOnTimers[3][shot->sourceId] = 0;
|
||||||
gVsLockOnTimers[i][shot->playerNum] = 20;
|
gVsLockOnTimers[i][shot->sourceId] = 20;
|
||||||
func_enmy_80060F30(gPlayer[shot->playerNum].sfxSource, 0x49008027, shot->playerNum);
|
func_enmy_80060F30(gPlayer[shot->sourceId].sfxSource, 0x49008027, shot->sourceId);
|
||||||
for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) {
|
for (j = 0; j < ARRAY_COUNT(gPlayerShots); j++) {
|
||||||
if (gPlayerShots[j].obj.id == PLAYERSHOT_4) {
|
if (gPlayerShots[j].obj.id == PLAYERSHOT_4) {
|
||||||
Object_Kill(&gPlayerShots[j].obj, gPlayerShots[j].sfxSource);
|
Object_Kill(&gPlayerShots[j].obj, gPlayerShots[j].sfxSource);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
D_display_801615B8[shot->playerNum] = 3.0f;
|
D_display_801615B8[shot->sourceId] = 3.0f;
|
||||||
D_display_801615A8[shot->playerNum] = 300.0f;
|
D_display_801615A8[shot->sourceId] = 300.0f;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1742,7 +1744,7 @@ bool func_beam_8003BB4C(PlayerShot* shot) {
|
|||||||
void func_beam_8003BEF4(PlayerShot* shot) {
|
void func_beam_8003BEF4(PlayerShot* shot) {
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
if ((shot->obj.pos.y < gGroundHeight) || func_beam_8003BB4C(shot) ||
|
if ((shot->obj.pos.y < gGroundHeight) || func_beam_8003BB4C(shot) ||
|
||||||
!(gControllerHold[shot->playerNum].button & A_BUTTON) || (shot->unk_64 == 0)) {
|
!(gControllerHold[shot->sourceId].button & A_BUTTON) || (shot->unk_64 == 0)) {
|
||||||
Object_Kill(&shot->obj, shot->sfxSource);
|
Object_Kill(&shot->obj, shot->sfxSource);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -1826,9 +1828,9 @@ void func_beam_8003C3D8(PlayerShot* shot) {
|
|||||||
gLight3y = shot->obj.pos.y;
|
gLight3y = shot->obj.pos.y;
|
||||||
gLight3z = shot->obj.pos.z;
|
gLight3z = shot->obj.pos.z;
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
gLight3R = D_800C9C18[shot->playerNum];
|
gLight3R = D_800C9C18[shot->sourceId];
|
||||||
gLight3G = D_800C9C1C[shot->playerNum];
|
gLight3G = D_800C9C1C[shot->sourceId];
|
||||||
gLight3B = D_800C9C20[shot->playerNum];
|
gLight3B = D_800C9C20[shot->sourceId];
|
||||||
} else {
|
} else {
|
||||||
gLight3R = 90;
|
gLight3R = 90;
|
||||||
gLight3G = 90;
|
gLight3G = 90;
|
||||||
@ -1860,7 +1862,7 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
|
|||||||
sp64 = scenery->obj.pos.y - shot->obj.pos.y;
|
sp64 = scenery->obj.pos.y - shot->obj.pos.y;
|
||||||
sp60 = scenery->obj.pos.z - shot->obj.pos.z;
|
sp60 = scenery->obj.pos.z - shot->obj.pos.z;
|
||||||
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
|
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
|
||||||
scenery->dmgType = 2;
|
scenery->dmgType = DMG_EXPLOSION;
|
||||||
}
|
}
|
||||||
scenery->dmgPart = 0;
|
scenery->dmgPart = 0;
|
||||||
}
|
}
|
||||||
@ -1897,19 +1899,19 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
|
|||||||
if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) ||
|
if ((actor->obj.id == OBJ_ACTOR_193) || (actor->obj.id == OBJ_ACTOR_186) ||
|
||||||
(actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) ||
|
(actor->obj.id == OBJ_ACTOR_190) || (actor->obj.id == OBJ_ACTOR_202) ||
|
||||||
(actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) ||
|
(actor->obj.id == OBJ_ACTOR_201) || (actor->obj.id == OBJ_ACTOR_187) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_78)) ||
|
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EVID_78)) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EINFO_38)) ||
|
((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->unk_0B4 == EVID_38)) ||
|
||||||
(actor->obj.id == OBJ_ACTOR_196)) {
|
(actor->obj.id == OBJ_ACTOR_196)) {
|
||||||
actor->dmgType = 2;
|
actor->dmgType = DMG_EXPLOSION;
|
||||||
actor->dmgPart = 0;
|
actor->dmgPart = 0;
|
||||||
actor->dmgSource = shot->playerNum + 1;
|
actor->dmgSource = shot->sourceId + 1;
|
||||||
actor->damage = damage;
|
actor->damage = damage;
|
||||||
|
|
||||||
if (actor->info.bonus != 0) {
|
if (actor->info.bonus != 0) {
|
||||||
shot->bonus++;
|
shot->bonus++;
|
||||||
}
|
}
|
||||||
} else if ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->scale >= 0.5f) && (damage > 30)) {
|
} else if ((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->scale >= 0.5f) && (damage > 30)) {
|
||||||
actor->dmgSource = shot->playerNum + 1;
|
actor->dmgSource = shot->sourceId + 1;
|
||||||
actor->vel.x = sp68 * 0.03f;
|
actor->vel.x = sp68 * 0.03f;
|
||||||
actor->vel.y = sp64 * 0.03f;
|
actor->vel.y = sp64 * 0.03f;
|
||||||
actor->vel.z = sp60 * 0.03f;
|
actor->vel.z = sp60 * 0.03f;
|
||||||
@ -1922,9 +1924,9 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
|
|||||||
shot->bonus++;
|
shot->bonus++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
actor->dmgType = 2;
|
actor->dmgType = DMG_EXPLOSION;
|
||||||
actor->dmgPart = 0;
|
actor->dmgPart = 0;
|
||||||
actor->dmgSource = shot->playerNum + 1;
|
actor->dmgSource = shot->sourceId + 1;
|
||||||
actor->damage = damage;
|
actor->damage = damage;
|
||||||
if (actor->info.bonus != 0) {
|
if (actor->info.bonus != 0) {
|
||||||
shot->bonus++;
|
shot->bonus++;
|
||||||
@ -1969,12 +1971,12 @@ void func_beam_8003C4D0(PlayerShot* shot, s32 damage) {
|
|||||||
}
|
}
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||||
if ((i != shot->playerNum) && (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->hitTimer == 0)) {
|
if ((i != shot->sourceId) && (player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) && (player->hitTimer == 0)) {
|
||||||
sp68 = player->pos.x - shot->obj.pos.x;
|
sp68 = player->pos.x - shot->obj.pos.x;
|
||||||
sp64 = player->pos.y - shot->obj.pos.y;
|
sp64 = player->pos.y - shot->obj.pos.y;
|
||||||
sp60 = player->trueZpos - shot->obj.pos.z;
|
sp60 = player->trueZpos - shot->obj.pos.z;
|
||||||
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
|
if (sqrtf(SQ(sp68) + SQ(sp64) + SQ(sp60)) < temp_fs2) {
|
||||||
player->unk_288 = shot->playerNum + 1;
|
player->unk_288 = shot->sourceId + 1;
|
||||||
switch (player->form) {
|
switch (player->form) {
|
||||||
case FORM_ARWING:
|
case FORM_ARWING:
|
||||||
Player_ApplyDamage(player, 0, 80);
|
Player_ApplyDamage(player, 0, 80);
|
||||||
@ -2006,18 +2008,18 @@ void func_beam_8003CC08(PlayerShot* shot) {
|
|||||||
func_beam_80035E78(shot);
|
func_beam_80035E78(shot);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((gPlayer[shot->playerNum].form == FORM_LANDMASTER) || (gPlayer[shot->playerNum].form == FORM_ON_FOOT)) {
|
if ((gPlayer[shot->sourceId].form == FORM_LANDMASTER) || (gPlayer[shot->sourceId].form == FORM_ON_FOOT)) {
|
||||||
shot->vel.y -= 1.0f;
|
shot->vel.y -= 1.0f;
|
||||||
Math_SmoothStepToF(&shot->obj.rot.x, -90.0f, 0.05f, 1.0f, 0.0f);
|
Math_SmoothStepToF(&shot->obj.rot.x, -90.0f, 0.05f, 1.0f, 0.0f);
|
||||||
}
|
}
|
||||||
if (shot->unk_64 < 25) {
|
if (shot->unk_64 < 25) {
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
if (gControllerPress[shot->playerNum].button & gBombButton[shot->playerNum]) {
|
if (gControllerPress[shot->sourceId].button & gBombButton[shot->sourceId]) {
|
||||||
func_beam_80035E78(shot);
|
func_beam_80035E78(shot);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (gControllerPress[gMainController].button & gBombButton[shot->playerNum]) {
|
if (gControllerPress[gMainController].button & gBombButton[shot->sourceId]) {
|
||||||
func_beam_80035E78(shot);
|
func_beam_80035E78(shot);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2091,18 +2093,18 @@ void func_beam_8003CF90(PlayerShot* shot) {
|
|||||||
if (shot->unk_60 == 0) {
|
if (shot->unk_60 == 0) {
|
||||||
for (i = 0, actor = gActors; i < 60; i++, actor++) {
|
for (i = 0, actor = gActors; i < 60; i++, actor++) {
|
||||||
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) &&
|
if ((actor->obj.status == OBJ_ACTIVE) && (actor->info.targetOffset != 0.0f) &&
|
||||||
(actor->lockOnTimers[shot->playerNum] != 0)) {
|
(actor->lockOnTimers[shot->sourceId] != 0)) {
|
||||||
var_a3 = 1;
|
var_a3 = 1;
|
||||||
actor->lockOnTimers[shot->playerNum] = 2;
|
actor->lockOnTimers[shot->sourceId] = 2;
|
||||||
D_800C9C24 = actor->obj.pos;
|
D_800C9C24 = actor->obj.pos;
|
||||||
D_800C9C24.y += actor->info.targetOffset;
|
D_800C9C24.y += actor->info.targetOffset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
for (i = 0, player = gPlayer; i < gCamCount; i++, player++) {
|
||||||
if (((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN)) &&
|
if (((player->state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (player->state_1C8 == PLAYERSTATE_1C8_U_TURN)) &&
|
||||||
(gVsLockOnTimers[i][shot->playerNum] != 0)) {
|
(gVsLockOnTimers[i][shot->sourceId] != 0)) {
|
||||||
var_a3 = 1;
|
var_a3 = 1;
|
||||||
gVsLockOnTimers[i][shot->playerNum] = 2;
|
gVsLockOnTimers[i][shot->sourceId] = 2;
|
||||||
D_800C9C24.x = player->pos.x;
|
D_800C9C24.x = player->pos.x;
|
||||||
if (player->form == FORM_ARWING) {
|
if (player->form == FORM_ARWING) {
|
||||||
D_800C9C24.y = player->pos.y;
|
D_800C9C24.y = player->pos.y;
|
||||||
@ -2143,7 +2145,7 @@ void func_beam_8003CF90(PlayerShot* shot) {
|
|||||||
} else {
|
} else {
|
||||||
Math_SmoothStepToF(&shot->unk_54, 91.0f, 1.0f, 7.7999997f, 0.f);
|
Math_SmoothStepToF(&shot->unk_54, 91.0f, 1.0f, 7.7999997f, 0.f);
|
||||||
}
|
}
|
||||||
if (!((gPlayer[shot->playerNum].form == FORM_LANDMASTER) && (shot->unk_60 != 0))) {
|
if (!((gPlayer[shot->sourceId].form == FORM_LANDMASTER) && (shot->unk_60 != 0))) {
|
||||||
Vec3f sp44;
|
Vec3f sp44;
|
||||||
Vec3f sp38;
|
Vec3f sp38;
|
||||||
|
|
||||||
@ -2185,7 +2187,7 @@ void func_beam_8003D54C(PlayerShot* shot, s32 index) {
|
|||||||
func_beam_8003B55C(shot, index);
|
func_beam_8003B55C(shot, index);
|
||||||
break;
|
break;
|
||||||
case PLAYERSHOT_2:
|
case PLAYERSHOT_2:
|
||||||
func_beam_8003B00C(shot, &gPlayer[shot->playerNum]);
|
func_beam_8003B00C(shot, &gPlayer[shot->sourceId]);
|
||||||
break;
|
break;
|
||||||
case PLAYERSHOT_BOMB:
|
case PLAYERSHOT_BOMB:
|
||||||
func_beam_8003CC08(shot);
|
func_beam_8003CC08(shot);
|
||||||
@ -2207,7 +2209,7 @@ void func_beam_8003D54C(PlayerShot* shot, s32 index) {
|
|||||||
func_beam_8003C4D0(shot, 30);
|
func_beam_8003C4D0(shot, 30);
|
||||||
if (shot->bonus != 0) {
|
if (shot->bonus != 0) {
|
||||||
if (gVersusMode) {
|
if (gVersusMode) {
|
||||||
gPlayerScores[shot->playerNum] += shot->bonus;
|
gPlayerScores[shot->sourceId] += shot->bonus;
|
||||||
} else {
|
} else {
|
||||||
bonus = shot->bonus;
|
bonus = shot->bonus;
|
||||||
if (shot->bonus > 10) {
|
if (shot->bonus > 10) {
|
||||||
|
@ -78,10 +78,10 @@ UNK_TYPE F_80177DE8;
|
|||||||
s32 gGameFrameCount;
|
s32 gGameFrameCount;
|
||||||
s32 gObjectLoadIndex;
|
s32 gObjectLoadIndex;
|
||||||
s32 gPrevEventActorIndex;
|
s32 gPrevEventActorIndex;
|
||||||
s32 D_ctx_80177E78;
|
s32 gFormationLeaderIndex;
|
||||||
s32 gRingPassCount;
|
s32 gRingPassCount;
|
||||||
Vec3f D_ctx_80177E88;
|
Vec3f gFormationInitRot;
|
||||||
Vec3f D_ctx_80177F10;
|
Vec3f gFormationInitPos;
|
||||||
UNK_TYPE F_80178020;
|
UNK_TYPE F_80178020;
|
||||||
s32 D_ctx_8017812C;
|
s32 D_ctx_8017812C;
|
||||||
LevelId gCurrentLevel;
|
LevelId gCurrentLevel;
|
||||||
|
@ -401,7 +401,7 @@ void func_demo_80049968(Actor* actor, s32 arg1) {
|
|||||||
actor->obj.id = OBJ_ACTOR_CUTSCENE;
|
actor->obj.id = OBJ_ACTOR_CUTSCENE;
|
||||||
actor->obj.pos.x = D_demo_800C9FD0[arg1];
|
actor->obj.pos.x = D_demo_800C9FD0[arg1];
|
||||||
actor->obj.pos.y = D_demo_800C9FE0[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[0] = D_demo_800CA000[arg1];
|
||||||
actor->fwork[1] = D_demo_800CA010[arg1];
|
actor->fwork[1] = D_demo_800CA010[arg1];
|
||||||
actor->unk_0B6 = D_demo_800CA030[arg1];
|
actor->unk_0B6 = D_demo_800CA030[arg1];
|
||||||
|
@ -92,7 +92,7 @@ f32 gWarpZoneEvent93Hitbox[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// clang-format off
|
// 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_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_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 },
|
/* 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);
|
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);
|
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_TEAM_BOSS:
|
||||||
case OBJ_ACTOR_EVENT:
|
case OBJ_ACTOR_EVENT:
|
||||||
switch (gActors[index].unk_0B4) {
|
switch (gActors[index].unk_0B4) {
|
||||||
case EINFO_3:
|
case EVID_3:
|
||||||
Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, MTXF_APPLY);
|
Matrix_Scale(gGfxMatrix, 2.3f, 0.0f, 2.3f, MTXF_APPLY);
|
||||||
Matrix_RotateX(gGfxMatrix, M_PI / 2, MTXF_APPLY);
|
Matrix_RotateX(gGfxMatrix, M_PI / 2, MTXF_APPLY);
|
||||||
Matrix_SetGfxMtx(&gMasterDisp);
|
Matrix_SetGfxMtx(&gMasterDisp);
|
||||||
gSPDisplayList(gMasterDisp++, D_102A010);
|
gSPDisplayList(gMasterDisp++, D_102A010);
|
||||||
break;
|
break;
|
||||||
case EINFO_81:
|
case EVID_81:
|
||||||
RCP_SetupDL(&gMasterDisp, 0x30);
|
RCP_SetupDL(&gMasterDisp, 0x30);
|
||||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
|
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 255);
|
||||||
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255);
|
gDPSetEnvColor(gMasterDisp++, 0, 0, 0, 255);
|
||||||
@ -1001,14 +1001,14 @@ void Actor_DrawOnRails(Actor* this) {
|
|||||||
Zoness_80190F08(this);
|
Zoness_80190F08(this);
|
||||||
return;
|
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);
|
Actor194_Draw(this);
|
||||||
} else {
|
} else {
|
||||||
if (this->info.unk_19 != 0) {
|
if (this->info.unk_19 != 0) {
|
||||||
this->obj.pos.y += gCameraShakeY;
|
this->obj.pos.y += gCameraShakeY;
|
||||||
func_edisplay_8005D008(&this->obj, this->info.drawType);
|
func_edisplay_8005D008(&this->obj, this->info.drawType);
|
||||||
this->obj.pos.y -= gCameraShakeY;
|
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,
|
func_edisplay_8005D3CC(&this->obj, this->vwork[29].x, this->vwork[29].y,
|
||||||
this->vwork[29].z + this->unk_0F4.z, this->info.drawType);
|
this->vwork[29].z + this->unk_0F4.z, this->info.drawType);
|
||||||
} else {
|
} else {
|
||||||
|
@ -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->obj.rot.z = RAND_FLOAT(360.0f);
|
||||||
effect->unk_4A = 180;
|
effect->unk_4A = 180;
|
||||||
effect->scale2 = 5.0f;
|
effect->scale2 = 5.0f;
|
||||||
return;
|
} else if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
||||||
}
|
|
||||||
|
|
||||||
if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
|
||||||
AUDIO_PLAY_SFX(0x31000025, effect->sfxSource, 4);
|
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) {
|
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->obj.rot.z = RAND_FLOAT(360.0f);
|
||||||
effect->unk_4A = 180;
|
effect->unk_4A = 180;
|
||||||
effect->scale2 = 5.0f;
|
effect->scale2 = 5.0f;
|
||||||
return;
|
} else if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
||||||
}
|
|
||||||
|
|
||||||
if ((objId == OBJ_EFFECT_355) || (objId == OBJ_EFFECT_377)) {
|
|
||||||
AUDIO_PLAY_SFX(0x31000025, effect->sfxSource, 4);
|
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,
|
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.z - effect->obj.pos.z) < 100.0f) &&
|
||||||
(fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) &&
|
(fabsf(actor->obj.pos.x - effect->obj.pos.x) < 100.0f) &&
|
||||||
(fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) {
|
(fabsf(actor->obj.pos.y - effect->obj.pos.y) < 100.0f)) {
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->dmgPart = 0;
|
actor->dmgPart = 0;
|
||||||
actor->damage = 10;
|
actor->damage = 10;
|
||||||
if (effect->obj.id == OBJ_EFFECT_354) {
|
if (effect->obj.id == OBJ_EFFECT_354) {
|
||||||
actor->damage = 30;
|
actor->damage = 30;
|
||||||
}
|
}
|
||||||
actor->dmgSource = 100;
|
actor->dmgSource = CS_SHOT_ID;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,7 +72,7 @@ u32 gWarpRingSfx[] = {
|
|||||||
0x19404038, 0x19404139, 0x1940423A, 0x1940433B, 0x1940443C, 0x1940453D, 0x1940463E, 0x1940463E, 0x1940463E,
|
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("CHIME SET \n");
|
||||||
PRINTF("BOMB SET 1\n");
|
PRINTF("BOMB SET 1\n");
|
||||||
PRINTF("BOMB SET 2\n");
|
PRINTF("BOMB SET 2\n");
|
||||||
@ -81,7 +81,7 @@ void func_enmy_80060F30(f32* pos, u32 sfxId, s32 arg2) {
|
|||||||
if (!gVersusMode) {
|
if (!gVersusMode) {
|
||||||
AUDIO_PLAY_SFX(sfxId, gDefaultSfxSource, 4);
|
AUDIO_PLAY_SFX(sfxId, gDefaultSfxSource, 4);
|
||||||
} else {
|
} 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) {
|
void Object_SetInfo(ObjectInfo* info, u32 objId) {
|
||||||
*info = D_edata_800CC124[objId];
|
*info = gObjectInfo[objId];
|
||||||
info->hitbox = SEGMENTED_TO_VIRTUAL(D_edata_800CC124[objId].hitbox);
|
info->hitbox = SEGMENTED_TO_VIRTUAL(gObjectInfo[objId].hitbox);
|
||||||
if (gLevelMode == LEVELMODE_UNK_2) {
|
if (gLevelMode == LEVELMODE_UNK_2) {
|
||||||
info->cullDistance += 200.0f;
|
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->unk_0F4.z = objInit->rot.z;
|
||||||
actor->obj.id = OBJ_ACTOR_EVENT;
|
actor->obj.id = OBJ_ACTOR_EVENT;
|
||||||
actor->timer_0C2 = 10;
|
actor->timer_0C2 = 10;
|
||||||
actor->unk_0B4 = EINFO_FFF;
|
actor->unk_0B4 = EVID_FFF;
|
||||||
actor->aiType = objInit->id - ACTOR_EVENT_ID;
|
actor->aiType = objInit->id - ACTOR_EVENT_ID;
|
||||||
|
|
||||||
Object_SetInfo(&actor->info, actor->obj.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[1] = gPrevEventActorIndex;
|
||||||
actor->iwork[10] = gActors[gPrevEventActorIndex].aiType;
|
actor->iwork[10] = gActors[gPrevEventActorIndex].aiType;
|
||||||
actor->fwork[22] = gArwingSpeed;
|
actor->fwork[22] = gArwingSpeed;
|
||||||
Matrix_RotateZ(gCalcMatrix, -D_ctx_80177E88.z * M_DTOR, MTXF_NEW);
|
Matrix_RotateZ(gCalcMatrix, -gFormationInitRot.z * M_DTOR, MTXF_NEW);
|
||||||
Matrix_RotateX(gCalcMatrix, -D_ctx_80177E88.x * M_DTOR, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, -gFormationInitRot.x * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_RotateY(gCalcMatrix, -D_ctx_80177E88.y * M_DTOR, MTXF_APPLY);
|
Matrix_RotateY(gCalcMatrix, -gFormationInitRot.y * M_DTOR, MTXF_APPLY);
|
||||||
sp24.x = actor->obj.pos.x - D_ctx_80177F10.x;
|
sp24.x = actor->obj.pos.x - gFormationInitPos.x;
|
||||||
sp24.y = actor->obj.pos.y - D_ctx_80177F10.y;
|
sp24.y = actor->obj.pos.y - gFormationInitPos.y;
|
||||||
sp24.z = actor->obj.pos.z - D_ctx_80177F10.z;
|
sp24.z = actor->obj.pos.z - gFormationInitPos.z;
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp24, &actor->vwork[28]);
|
||||||
actor->iwork[9] = D_ctx_80177E78;
|
actor->iwork[9] = gFormationLeaderIndex;
|
||||||
gPrevEventActorIndex = index;
|
gPrevEventActorIndex = index;
|
||||||
Actor_Update(actor);
|
Actor_Update(actor);
|
||||||
}
|
}
|
||||||
@ -902,7 +902,7 @@ s32 Object_CheckCollision(s32 index, Vec3f* pos, Vec3f* vel, s32 mode) {
|
|||||||
} else if (actor->scale < 0.0f) {
|
} else if (actor->scale < 0.0f) {
|
||||||
if (Object_CheckHitboxCollision(pos, actor->info.hitbox, &actor->obj, actor->vwork[29].x,
|
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->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z)) {
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->damage = 10;
|
actor->damage = 10;
|
||||||
actor->dmgPart = -1;
|
actor->dmgPart = -1;
|
||||||
actor->hitPos.x = pos->x;
|
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)) {
|
} else if ((mode != 2) && (mode != 3)) {
|
||||||
if (Object_CheckSingleHitbox(pos, actor->info.hitbox, &actor->obj.pos)) {
|
if (Object_CheckSingleHitbox(pos, actor->info.hitbox, &actor->obj.pos)) {
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->damage = 10;
|
actor->damage = 10;
|
||||||
actor->dmgPart = -1;
|
actor->dmgPart = -1;
|
||||||
if (!(((actor->obj.id == OBJ_ACTOR_EVENT) && (actor->iwork[12] != 0)) ||
|
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) &&
|
if ((fabsf(actor->fwork[27] - actor->obj.pos.x) < 60.0f) &&
|
||||||
(fabsf(actor->fwork[28] - actor->obj.pos.y) < 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))) {
|
(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].damage = 20;
|
||||||
gActors[spC4].dmgSource = 2;
|
gActors[spC4].dmgSource = DMG_SRC_2;
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
@ -1583,11 +1583,11 @@ void func_enmy_800656D4(Actor* actor) {
|
|||||||
sp8C.x = actor->vel.x;
|
sp8C.x = actor->vel.x;
|
||||||
sp8C.y = actor->vel.y;
|
sp8C.y = actor->vel.y;
|
||||||
sp8C.z = actor->vel.z;
|
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)) {
|
(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);
|
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->itemDrop = DROP_SILVER_RING_50p;
|
actor->itemDrop = DROP_SILVER_RING_50p;
|
||||||
if ((gCurrentLevel == LEVEL_CORNERIA)) {
|
if ((gCurrentLevel == LEVEL_CORNERIA)) {
|
||||||
if (gLevelMode == LEVELMODE_ALL_RANGE) {
|
if (gLevelMode == LEVELMODE_ALL_RANGE) {
|
||||||
@ -1649,12 +1649,12 @@ void Actor_Despawn(Actor* actor) {
|
|||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
if (gVersusMode) {
|
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))) {
|
!((D_versus_80178768[0] == 0) && (D_versus_80178768[1] == 0) && (D_versus_80178768[2] == 0))) {
|
||||||
gPlayerScores[actor->dmgSource - 1] += actor->info.bonus;
|
gPlayerScores[actor->dmgSource - 1] += actor->info.bonus;
|
||||||
}
|
}
|
||||||
} else if (!((actor->obj.id == OBJ_ACTOR_ALLRANGE) && (actor->unk_0B6 == 1))) {
|
} 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;
|
gHitCount += actor->info.bonus;
|
||||||
D_ctx_80177850 = 15;
|
D_ctx_80177850 = 15;
|
||||||
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gDropHitCountItem != 0)) {
|
if ((gLevelMode == LEVELMODE_ALL_RANGE) && (gDropHitCountItem != 0)) {
|
||||||
@ -1751,10 +1751,10 @@ void func_enmy_8006654C(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
actor->scale = 0.8f;
|
actor->scale = 0.8f;
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->obj.status = OBJ_DYING;
|
actor->obj.status = OBJ_DYING;
|
||||||
actor->vel.y = RAND_FLOAT(5.0f) + 6.0f;
|
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.y = -2.0f;
|
||||||
}
|
}
|
||||||
actor->vel.z = -15.0f;
|
actor->vel.z = -15.0f;
|
||||||
@ -1798,7 +1798,7 @@ void func_enmy_800669A0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
actor->obj.rot.y += 5.0f;
|
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_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,
|
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);
|
5);
|
||||||
@ -2003,8 +2003,8 @@ void ActorSupplies_Update(ActorSupplies* this) {
|
|||||||
Math_SmoothStepToF(&this->obj.pos.y, 300.0f, 0.05f, 50.0f, 0.01f);
|
Math_SmoothStepToF(&this->obj.pos.y, 300.0f, 0.05f, 50.0f, 0.01f);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this->dmgType != 0) {
|
if (this->dmgType != DMG_NONE) {
|
||||||
this->dmgType = 0;
|
this->dmgType = DMG_NONE;
|
||||||
this->health -= this->damage;
|
this->health -= this->damage;
|
||||||
if (this->health <= 0) {
|
if (this->health <= 0) {
|
||||||
func_effect_8007A6F0(&this->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&this->obj.pos, 0x2903A008);
|
||||||
@ -2502,7 +2502,7 @@ void Actor_Move(Actor* actor) {
|
|||||||
var_fv0 = 4000.0f;
|
var_fv0 = 4000.0f;
|
||||||
|
|
||||||
if ((actor->obj.id == OBJ_ACTOR_236) || (gCurrentLevel == LEVEL_MACBETH) ||
|
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;
|
var_fv0 = 8000.0f;
|
||||||
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ENTER_WARP_ZONE) {
|
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ENTER_WARP_ZONE) {
|
||||||
var_fv0 = 100000.0f;
|
var_fv0 = 100000.0f;
|
||||||
@ -2523,9 +2523,9 @@ void Actor_Move(Actor* actor) {
|
|||||||
gActor194Status[actor->unk_046] = 0;
|
gActor194Status[actor->unk_046] = 0;
|
||||||
break;
|
break;
|
||||||
case OBJ_ACTOR_EVENT:
|
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;
|
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;
|
gRingPassCount = -1;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -2460,7 +2460,7 @@ s32 func_hud_8008B774(void) {
|
|||||||
(gCurrentLevel == LEVEL_SECTOR_Y))) {
|
(gCurrentLevel == LEVEL_SECTOR_Y))) {
|
||||||
for (i = 0; i < 60; i++) {
|
for (i = 0; i < 60; i++) {
|
||||||
if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].iwork[12] == temp)) {
|
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].obj.id == OBJ_ACTOR_TEAM_BOSS) &&
|
||||||
((gActors[i].aiType == AI360_FALCO) || (gActors[i].aiType == AI360_SLIPPY) ||
|
((gActors[i].aiType == AI360_FALCO) || (gActors[i].aiType == AI360_SLIPPY) ||
|
||||||
(gActors[i].aiType == AI360_PEPPY)))) {
|
(gActors[i].aiType == AI360_PEPPY)))) {
|
||||||
@ -4327,9 +4327,9 @@ bool func_hud_80091DF4(Actor* actor) {
|
|||||||
sp44.y = 0.0f;
|
sp44.y = 0.0f;
|
||||||
sp44.z = 100.0f;
|
sp44.z = 100.0f;
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
|
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_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.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->obj.rot.y, actor->obj.rot.z);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -4339,9 +4339,9 @@ bool func_hud_80091F00(Actor* actor) {
|
|||||||
Vec3f sp40;
|
Vec3f sp40;
|
||||||
Vec3f sp34;
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4376,7 +4376,7 @@ bool func_hud_80091F00(Actor* actor) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor->dmgType == 3) && (actor->dmgSource == 1)) {
|
if ((actor->dmgType == DMG_COLLISION) && (actor->dmgSource == AI360_FOX + 1)) {
|
||||||
switch (actor->aiType) {
|
switch (actor->aiType) {
|
||||||
case AI360_FALCO:
|
case AI360_FALCO:
|
||||||
Radio_PlayMessage(gMsg_ID_20210, RCID_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) {
|
switch (actor->aiType) {
|
||||||
case AI360_FALCO:
|
case AI360_FALCO:
|
||||||
Radio_PlayMessage(gMsg_ID_20060, RCID_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) {
|
switch (actor->aiType) {
|
||||||
case AI360_FALCO:
|
case AI360_FALCO:
|
||||||
Radio_PlayMessage(gMsg_ID_20030, RCID_FALCO);
|
Radio_PlayMessage(gMsg_ID_20030, RCID_FALCO);
|
||||||
@ -4705,7 +4705,7 @@ void ActorTeamBoss_Update(ActorTeamBoss* this) {
|
|||||||
func_hud_80091B90(this);
|
func_hud_80091B90(this);
|
||||||
func_hud_80091DF4(this);
|
func_hud_80091DF4(this);
|
||||||
|
|
||||||
if (this->dmgType != 0) {
|
if (this->dmgType != DMG_NONE) {
|
||||||
func_hud_80091F00(this);
|
func_hud_80091F00(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -655,9 +655,9 @@ void Play_ClearObjectData(void) {
|
|||||||
PlayerShot_Initialize(&gPlayerShots[i]);
|
PlayerShot_Initialize(&gPlayerShots[i]);
|
||||||
}
|
}
|
||||||
D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C =
|
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;
|
gPrevEventActorIndex = gFormationLeaderIndex = 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 =
|
gFormationInitPos.x = gFormationInitPos.y = gFormationInitPos.z = gFormationInitRot.x = gFormationInitRot.y =
|
||||||
0.0f;
|
gFormationInitRot.z = 0.0f;
|
||||||
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
|
for (i = 0; i < ARRAY_COUNT(gTeamArrowsViewPos); i++) {
|
||||||
gTeamArrowsViewPos[i].x = gTeamArrowsViewPos[i].y = gTeamArrowsViewPos[i].z = 100.0f;
|
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);
|
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||||
}
|
}
|
||||||
} else if (actor->obj.id == OBJ_ACTOR_EVENT) {
|
} else if (actor->obj.id == OBJ_ACTOR_EVENT) {
|
||||||
if (actor->unk_0B4 == EINFO_42) {
|
if (actor->unk_0B4 == EVID_42) {
|
||||||
temp_v0 =
|
temp_v0 =
|
||||||
func_play_800A8304(player, ACTOR_EVENT_ID, actor->obj.pos.x, actor->obj.pos.y,
|
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);
|
actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z);
|
||||||
if (temp_v0 != 0) {
|
if (temp_v0 != 0) {
|
||||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
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.x = fabsf(actor->obj.pos.x - player->pos.x);
|
||||||
spfD4.y = fabsf(actor->obj.pos.y - player->pos.y);
|
spfD4.y = fabsf(actor->obj.pos.y - player->pos.y);
|
||||||
spfD4.z = fabsf(actor->obj.pos.z - player->trueZpos);
|
spfD4.z = fabsf(actor->obj.pos.z - player->trueZpos);
|
||||||
if ((VEC3F_MAG(&spfD4)) < 900.0f) {
|
if ((VEC3F_MAG(&spfD4)) < 900.0f) {
|
||||||
Player_ApplyDamage(player, 0, actor->info.damage);
|
Player_ApplyDamage(player, 0, actor->info.damage);
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
temp_v0 = func_play_800A7974(player, actor->info.hitbox, &sp98, actor->obj.pos.x,
|
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->obj.rot.y, actor->obj.rot.z, actor->vwork[29].x,
|
||||||
actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z);
|
actor->vwork[29].y, actor->vwork[29].z + actor->unk_0F4.z);
|
||||||
if (temp_v0 != 0) {
|
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);
|
actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_SX_6032328);
|
||||||
if (gRingPassCount >= 0) {
|
if (gRingPassCount >= 0) {
|
||||||
actor->unk_046 = 2;
|
actor->unk_046 = 2;
|
||||||
@ -1956,7 +1956,7 @@ void func_play_800A8BA4(Player* player) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
actor->dmgSource = player->num + 1;
|
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[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);
|
actor->fwork[29], actor->fwork[26], actor->obj.rot.z, 0.0f, 0.0f, 0.0f);
|
||||||
if (temp_v0 != 0) {
|
if (temp_v0 != 0) {
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
if (actor->info.damage) {
|
if (actor->info.damage) {
|
||||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||||
} else {
|
} else {
|
||||||
@ -1988,7 +1988,7 @@ void func_play_800A8BA4(Player* player) {
|
|||||||
player->whooshTimer = 4;
|
player->whooshTimer = 4;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
if (actor->obj.id == OBJ_ACTOR_190) {
|
if (actor->obj.id == OBJ_ACTOR_190) {
|
||||||
actor->dmgType = -1;
|
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->unk_64 = 30;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
shot->playerNum = player->num;
|
shot->sourceId = player->num;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_play_800AC650(Player* player, PlayerShot* shot, PlayerShotId shotId, f32 speed) {
|
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->unk_64 = 40;
|
||||||
shot->obj.id = shotId;
|
shot->obj.id = shotId;
|
||||||
|
|
||||||
shot->playerNum = player->num;
|
shot->sourceId = player->num;
|
||||||
if (shotId == PLAYERSHOT_8) {
|
if (shotId == PLAYERSHOT_8) {
|
||||||
if (speed <= 65.0f) {
|
if (speed <= 65.0f) {
|
||||||
shot->unk_5C = 1;
|
shot->unk_5C = 1;
|
||||||
@ -2940,7 +2940,7 @@ void func_play_800ACDC0(Player* player, PlayerShot* shot, PlayerShotId shotId) {
|
|||||||
shot->unk_64 = 30;
|
shot->unk_64 = 30;
|
||||||
shot->unk_58 = 1;
|
shot->unk_58 = 1;
|
||||||
|
|
||||||
shot->playerNum = player->num;
|
shot->sourceId = player->num;
|
||||||
}
|
}
|
||||||
|
|
||||||
void func_play_800AD094(Player* player) {
|
void func_play_800AD094(Player* player) {
|
||||||
|
@ -1403,7 +1403,7 @@ void func_tank_800481F4(Player* player) {
|
|||||||
actor->vwork[29].z + actor->unk_0F4.z);
|
actor->vwork[29].z + actor->unk_0F4.z);
|
||||||
if (temp_v0 != 0) {
|
if (temp_v0 != 0) {
|
||||||
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
Player_ApplyDamage(player, temp_v0, actor->info.damage);
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
actor->dmgSource = player->num + 1;
|
actor->dmgSource = player->num + 1;
|
||||||
}
|
}
|
||||||
} else if (actor->obj.id == OBJ_ACTOR_207) {
|
} else if (actor->obj.id == OBJ_ACTOR_207) {
|
||||||
@ -1426,7 +1426,7 @@ void func_tank_800481F4(Player* player) {
|
|||||||
player->vel.x = 0.0f;
|
player->vel.x = 0.0f;
|
||||||
player->vel.y = 30.0f;
|
player->vel.y = 30.0f;
|
||||||
player->pos.x = player->basePos.x;
|
player->pos.x = player->basePos.x;
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
Player_ApplyDamage(player, 0, 5);
|
Player_ApplyDamage(player, 0, 5);
|
||||||
player->timer_498 = 1;
|
player->timer_498 = 1;
|
||||||
}
|
}
|
||||||
@ -1451,7 +1451,7 @@ void func_tank_800481F4(Player* player) {
|
|||||||
player->vel.x = 0.0f;
|
player->vel.x = 0.0f;
|
||||||
player->vel.y = 30.0f;
|
player->vel.y = 30.0f;
|
||||||
player->pos.x = player->basePos.x;
|
player->pos.x = player->basePos.x;
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
if (actor->info.damage != 0) {
|
if (actor->info.damage != 0) {
|
||||||
Player_ApplyDamage(player, 0, 20);
|
Player_ApplyDamage(player, 0, 20);
|
||||||
} else {
|
} else {
|
||||||
@ -1463,7 +1463,7 @@ void func_tank_800481F4(Player* player) {
|
|||||||
actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z,
|
actor->obj.pos.z, actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z,
|
||||||
0.0f, 0.0f, 0.0f);
|
0.0f, 0.0f, 0.0f);
|
||||||
if (temp_v0 != 0) {
|
if (temp_v0 != 0) {
|
||||||
actor->dmgType = 3;
|
actor->dmgType = DMG_COLLISION;
|
||||||
if ((actor->obj.id == OBJ_ACTOR_225) || (actor->obj.id == OBJ_ACTOR_190)) {
|
if ((actor->obj.id == OBJ_ACTOR_225) || (actor->obj.id == OBJ_ACTOR_190)) {
|
||||||
actor->dmgType = -1;
|
actor->dmgType = -1;
|
||||||
}
|
}
|
||||||
|
@ -1127,8 +1127,8 @@ s32 Corneria_8018AB64(Actor* actor) {
|
|||||||
|
|
||||||
void Corneria_8018ACE0(Actor* actor) {
|
void Corneria_8018ACE0(Actor* actor) {
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->dmgPart == 0) {
|
if (actor->dmgPart == 0) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
func_effect_8007C120(actor->obj.pos.x, actor->obj.pos.y + 200.0f, actor->obj.pos.z, actor->vel.x,
|
func_effect_8007C120(actor->obj.pos.x, actor->obj.pos.y + 200.0f, actor->obj.pos.z, actor->vel.x,
|
||||||
@ -2401,8 +2401,8 @@ void Corneria_8018F044(Scenery* scenery) {
|
|||||||
|
|
||||||
switch (scenery->state) {
|
switch (scenery->state) {
|
||||||
case 0:
|
case 0:
|
||||||
if (scenery->dmgType != 0) {
|
if (scenery->dmgType != DMG_NONE) {
|
||||||
scenery->dmgType = 0;
|
scenery->dmgType = DMG_NONE;
|
||||||
if (scenery->dmgPart < 2) {
|
if (scenery->dmgPart < 2) {
|
||||||
scenery->unk_44++;
|
scenery->unk_44++;
|
||||||
scenery->timer_4C = 5;
|
scenery->timer_4C = 5;
|
||||||
|
@ -339,8 +339,8 @@ void Venom1_80192518(Actor* actor) {
|
|||||||
f32 temp_fv1_2;
|
f32 temp_fv1_2;
|
||||||
Effect* effect;
|
Effect* effect;
|
||||||
|
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -621,8 +621,8 @@ void Venom1_80192CB0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Venom1_80192CD4(Actor* actor) {
|
void Venom1_80192CD4(Actor* actor) {
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -763,8 +763,8 @@ void Venom1_80192EB0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
||||||
}
|
}
|
||||||
actor->iwork[0]++;
|
actor->iwork[0]++;
|
||||||
@ -778,8 +778,8 @@ void Venom1_801933B4(Actor* actor) {
|
|||||||
void Venom1_801933DC(Actor* actor) {
|
void Venom1_801933DC(Actor* actor) {
|
||||||
f32* hitboxData;
|
f32* hitboxData;
|
||||||
|
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 0);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1537,8 +1537,8 @@ void Venom1_80194398(Boss* boss) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (boss->dmgType == 1) {
|
if (boss->dmgType == DMG_BEAM) {
|
||||||
boss->dmgType = 0;
|
boss->dmgType = DMG_NONE;
|
||||||
switch (boss->state) {
|
switch (boss->state) {
|
||||||
case 0:
|
case 0:
|
||||||
case 1:
|
case 1:
|
||||||
|
@ -44,8 +44,8 @@ Vec3f D_i2_80195610[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
void Meteo_80187530(Actor* actor) {
|
void Meteo_80187530(Actor* actor) {
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2902107D);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2902107D);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -53,8 +53,8 @@ void Meteo_80187530(Actor* actor) {
|
|||||||
void Meteo_8018756C(Actor* actor) {
|
void Meteo_8018756C(Actor* actor) {
|
||||||
Vec3f vec;
|
Vec3f vec;
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
actor->obj.status = OBJ_DYING;
|
actor->obj.status = OBJ_DYING;
|
||||||
@ -95,7 +95,7 @@ void Meteo_80187650(Actor* actor) {
|
|||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 6.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 6.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f);
|
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
@ -132,7 +132,7 @@ void Meteo_801877C4(Actor* actor) {
|
|||||||
actor->obj.pos.x = actor->fwork[0] + sp44.x;
|
actor->obj.pos.x = actor->fwork[0] + sp44.x;
|
||||||
actor->obj.pos.y = actor->fwork[1] + sp44.y;
|
actor->obj.pos.y = actor->fwork[1] + sp44.y;
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
@ -155,7 +155,7 @@ void Meteo_8018795C(Actor* actor) {
|
|||||||
actor->obj.rot.y += 7.0f;
|
actor->obj.rot.y += 7.0f;
|
||||||
actor->obj.rot.x += 3.3f;
|
actor->obj.rot.x += 3.3f;
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
@ -191,7 +191,7 @@ void Meteo_80187B08(Actor* actor) {
|
|||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 6.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 6.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor->dmgType != 0) || (actor->timer_0BC == 0)) {
|
if ((actor->dmgType != DMG_NONE) || (actor->timer_0BC == 0)) {
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
func_effect_8007D0E0(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z, 8.0f);
|
func_effect_8007D0E0(actor->obj.pos.x - actor->vel.x, actor->obj.pos.y, actor->obj.pos.z - actor->vel.z, 8.0f);
|
||||||
@ -385,13 +385,13 @@ void Meteo_80188344(Boss* boss) {
|
|||||||
|
|
||||||
if (boss->timer_050 == 0) {
|
if (boss->timer_050 == 0) {
|
||||||
boss->state = 2;
|
boss->state = 2;
|
||||||
boss->dmgType = 0;
|
boss->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (boss->dmgType == 1) {
|
if (boss->dmgType == DMG_BEAM) {
|
||||||
boss->dmgType = 0;
|
boss->dmgType = DMG_NONE;
|
||||||
boss->timer_054 = 5;
|
boss->timer_054 = 5;
|
||||||
boss->swork[0] += 32;
|
boss->swork[0] += 32;
|
||||||
|
|
||||||
@ -858,8 +858,8 @@ void Meteo_8018978C(Boss* boss) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (boss->dmgType != 0) {
|
if (boss->dmgType != DMG_NONE) {
|
||||||
boss->dmgType = 0;
|
boss->dmgType = DMG_NONE;
|
||||||
if ((boss->dmgPart != 7) && (boss->dmgPart >= 5) && (boss->dmgPart != 5)) {
|
if ((boss->dmgPart != 7) && (boss->dmgPart >= 5) && (boss->dmgPart != 5)) {
|
||||||
AUDIO_PLAY_SFX(0x29121007, boss->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, boss->sfxSource, 4);
|
||||||
}
|
}
|
||||||
@ -2038,10 +2038,10 @@ void Meteo_LevelStart(Player* player) {
|
|||||||
Matrix_RotateX(gCalcMatrix, M_DTOR * sp68, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, M_DTOR * sp68, MTXF_APPLY);
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp58, &sp4C);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp58, &sp4C);
|
||||||
|
|
||||||
func_enmy2_8006EFA0(100, actor3->obj.pos.x + (D_ctx_80177A48[3] * 74.0f) + (sp4C.x * 0.6f),
|
Actor_SpawnGreatFoxLaser(100, actor3->obj.pos.x + (D_ctx_80177A48[3] * 74.0f) + (sp4C.x * 0.6f),
|
||||||
actor3->obj.pos.y - 232.0f + (sp4C.y * 0.8f),
|
actor3->obj.pos.y - 232.0f + (sp4C.y * 0.8f),
|
||||||
actor3->obj.pos.z - 1190.0f + (sp4C.z * 0.8f), sp4C.x, sp4C.y, sp4C.z, sp68,
|
actor3->obj.pos.z - 1190.0f + (sp4C.z * 0.8f), sp4C.x, sp4C.y, sp4C.z,
|
||||||
sp64, 0.0f);
|
sp68, sp64, 0.0f);
|
||||||
}
|
}
|
||||||
if (player->csEventTimer == 1) {
|
if (player->csEventTimer == 1) {
|
||||||
func_effect_8007D2C8(gActors[player->meTargetIndex].obj.pos.x,
|
func_effect_8007D2C8(gActors[player->meTargetIndex].obj.pos.x,
|
||||||
|
@ -62,9 +62,9 @@ void SectorX_8018F1DC(Actor* actor) {
|
|||||||
Matrix_RotateY(gCalcMatrix, (actor->unk_0F4.y + 180.0f) * M_DTOR, MTXF_NEW);
|
Matrix_RotateY(gCalcMatrix, (actor->unk_0F4.y + 180.0f) * M_DTOR, MTXF_NEW);
|
||||||
Matrix_RotateX(gCalcMatrix, actor->unk_0F4.x * M_DTOR, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, actor->unk_0F4.x * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
||||||
func_enmy2_8006EEFC(actor->index, actor->obj.pos.x + (dest.x * 1.5), actor->obj.pos.y + (dest.y * 1.5),
|
Actor_SpawnPlayerLaser(actor->index, actor->obj.pos.x + (dest.x * 1.5), actor->obj.pos.y + (dest.y * 1.5),
|
||||||
actor->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, actor->unk_0F4.x,
|
actor->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, actor->unk_0F4.x,
|
||||||
actor->unk_0F4.y + 180.0f, 0.0f);
|
actor->unk_0F4.y + 180.0f, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SectorX_8018F330(Actor* actor) {
|
void SectorX_8018F330(Actor* actor) {
|
||||||
@ -393,8 +393,8 @@ void SectorX_80190078(Boss* boss) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (boss->dmgType != 0) {
|
if (boss->dmgType != DMG_NONE) {
|
||||||
boss->dmgType = 0;
|
boss->dmgType = DMG_NONE;
|
||||||
if (boss->swork[0] == 1) {
|
if (boss->swork[0] == 1) {
|
||||||
if ((boss->dmgPart == 0) && ((boss->fwork[4] < 45.0f) || (boss->fwork[4] > 315.0f))) {
|
if ((boss->dmgPart == 0) && ((boss->fwork[4] < 45.0f) || (boss->fwork[4] > 315.0f))) {
|
||||||
AUDIO_PLAY_SFX(0x2903300E, boss->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903300E, boss->sfxSource, 4);
|
||||||
@ -1492,8 +1492,8 @@ void SectorX_LevelStart(Player* player) {
|
|||||||
src.y = src.x = 0.0f;
|
src.y = src.x = 0.0f;
|
||||||
src.z = 100.0f;
|
src.z = 100.0f;
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
||||||
func_enmy2_8006EEFC(100, 0.0f, player->cam.eye.y + 50.0f, player->cam.eye.z + 20.0f, dest.x, dest.y,
|
Actor_SpawnPlayerLaser(CS_SHOT_ID, 0.0f, player->cam.eye.y + 50.0f, player->cam.eye.z + 20.0f, dest.x,
|
||||||
dest.z, xyzDeg, xzDeg, 0.0f);
|
dest.y, dest.z, xyzDeg, xzDeg, 0.0f);
|
||||||
}
|
}
|
||||||
if (gCsFrameCount == 143) {
|
if (gCsFrameCount == 143) {
|
||||||
Object_Kill(&gPlayerShots[0].obj, gPlayerShots[0].sfxSource);
|
Object_Kill(&gPlayerShots[0].obj, gPlayerShots[0].sfxSource);
|
||||||
|
@ -2083,7 +2083,7 @@ void Area6_8018D3CC(s32 arg0, f32 xPos, f32 yPos, f32 zPos, f32 xVel, f32 yVel,
|
|||||||
gPlayerShots[i].unk_60 = 0;
|
gPlayerShots[i].unk_60 = 0;
|
||||||
gPlayerShots[i].obj.id = PLAYERSHOT_1;
|
gPlayerShots[i].obj.id = PLAYERSHOT_1;
|
||||||
gPlayerShots[i].unk_64 = 150;
|
gPlayerShots[i].unk_64 = 150;
|
||||||
gPlayerShots[i].playerNum = 100;
|
gPlayerShots[i].sourceId = CS_SHOT_ID;
|
||||||
|
|
||||||
AUDIO_PLAY_SFX(0x2900000D, gPlayerShots[i].sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2900000D, gPlayerShots[i].sfxSource, 4);
|
||||||
break;
|
break;
|
||||||
@ -2165,22 +2165,22 @@ void Area6_8018D804(Actor* actor, s32 arg1) {
|
|||||||
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Area6_8018D920(Vec3f* arg0) {
|
void Area6_8018D920(Vec3f* pos) {
|
||||||
f32 sp6C = arg0->x - arg0->x;
|
f32 sp6C = pos->x - pos->x; // what is this calculation?
|
||||||
f32 sp68 = arg0->y - arg0->y;
|
f32 sp68 = pos->y - pos->y;
|
||||||
f32 sp64 = arg0->z - 1000.0f - arg0->z;
|
f32 sp64 = pos->z - 1000.0f - pos->z;
|
||||||
f32 sp60 = Math_RadToDeg(Math_Atan2F(sp6C, sp64));
|
f32 yRot = Math_RadToDeg(Math_Atan2F(sp6C, sp64));
|
||||||
f32 sp5C = Math_RadToDeg(-Math_Atan2F(sp68, sqrtf(SQ(sp6C) + SQ(sp64))));
|
f32 xRot = Math_RadToDeg(-Math_Atan2F(sp68, sqrtf(SQ(sp6C) + SQ(sp64))));
|
||||||
Vec3f sp50;
|
Vec3f speed;
|
||||||
Vec3f sp44;
|
Vec3f vel;
|
||||||
|
|
||||||
Matrix_RotateY(gCalcMatrix, M_DTOR * sp60, MTXF_NEW);
|
Matrix_RotateY(gCalcMatrix, M_DTOR * yRot, MTXF_NEW);
|
||||||
Matrix_RotateX(gCalcMatrix, M_DTOR * sp5C, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, M_DTOR * xRot, MTXF_APPLY);
|
||||||
sp50.x = 0.0f;
|
speed.x = 0.0f;
|
||||||
sp50.y = 0.0f;
|
speed.y = 0.0f;
|
||||||
sp50.z = 100.0f;
|
speed.z = 100.0f;
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp50, &sp44);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &speed, &vel);
|
||||||
Area6_8018D3CC(100, arg0->x, arg0->y, arg0->z, sp44.x, sp44.y, sp44.z, sp5C, sp60, 0.0f);
|
Area6_8018D3CC(CS_SHOT_ID, pos->x, pos->y, pos->z, vel.x, vel.y, vel.z, xRot, yRot, 0.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Area6_8018DA58(Actor* actor) {
|
void Area6_8018DA58(Actor* actor) {
|
||||||
|
@ -1625,9 +1625,9 @@ void Aquas_801AD6C0(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
if (actor->health > 0) {
|
if (actor->health > 0) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
AUDIO_PLAY_SFX(0x29034045, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034045, actor->sfxSource, 4);
|
||||||
@ -1722,7 +1722,7 @@ void Aquas_801AD6C0(Actor* actor) {
|
|||||||
actor->iwork[1]--;
|
actor->iwork[1]--;
|
||||||
if (actor->iwork[1] <= 0) {
|
if (actor->iwork[1] <= 0) {
|
||||||
actor->itemDrop = DROP_NONE;
|
actor->itemDrop = DROP_NONE;
|
||||||
actor->dmgSource = 2;
|
actor->dmgSource = DMG_SRC_2;
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
}
|
}
|
||||||
@ -1850,8 +1850,8 @@ void Aquas_801AE3D8(Actor* actor) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if ((fabsf(D_i3_801C4308[10]) >= 6.0f) && (gBosses[0].state >= 10) &&
|
if ((fabsf(D_i3_801C4308[10]) >= 6.0f) && (gBosses[0].state >= 10) &&
|
||||||
(gBosses[0].swork[AQ_SWK_0] < 2)) {
|
(gBosses[0].swork[AQ_SWK_0] < 2)) {
|
||||||
actor->timer_0C6 = 30;
|
actor->timer_0C6 = 30;
|
||||||
@ -2119,8 +2119,8 @@ void Aquas_801AFA5C(Actor* actor) {
|
|||||||
actor->obj.rot.y = D_i3_801BFBC8[i];
|
actor->obj.rot.y = D_i3_801BFBC8[i];
|
||||||
actor->obj.rot.z = D_i3_801BFBD4[i];
|
actor->obj.rot.z = D_i3_801BFBD4[i];
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if ((gBosses[0].state >= 10) && (actor->health != 0) && (actor->damage == 31)) {
|
if ((gBosses[0].state >= 10) && (actor->health != 0) && (actor->damage == 31)) {
|
||||||
actor->timer_0BE = 70;
|
actor->timer_0BE = 70;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
@ -2344,7 +2344,7 @@ void Aquas_801B0B60(Actor* actor) {
|
|||||||
Vec3f sp44;
|
Vec3f sp44;
|
||||||
Vec3f sp38;
|
Vec3f sp38;
|
||||||
|
|
||||||
if ((actor->dmgType != 0) || (gBosses[0].state >= 16)) {
|
if ((actor->dmgType != DMG_NONE) || (gBosses[0].state >= 16)) {
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2396,7 +2396,7 @@ void Aquas_801B0B60(Actor* actor) {
|
|||||||
case 3:
|
case 3:
|
||||||
if (Rand_ZeroOne() < 0.1) {
|
if (Rand_ZeroOne() < 0.1) {
|
||||||
actor->itemDrop = DROP_SILVER_RING_10p;
|
actor->itemDrop = DROP_SILVER_RING_10p;
|
||||||
actor->dmgSource = 2;
|
actor->dmgSource = DMG_SRC_2;
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
}
|
}
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
@ -2842,8 +2842,8 @@ void Aquas_801B134C(Boss* bossAQ) {
|
|||||||
}
|
}
|
||||||
Math_SmoothStepToF(&D_i3_801C4308[80], 0.0f, 1.0f, 2.0f, 0);
|
Math_SmoothStepToF(&D_i3_801C4308[80], 0.0f, 1.0f, 2.0f, 0);
|
||||||
Math_SmoothStepToF(&D_i3_801C4308[11], D_i3_801C4308[80], 0.1f, 2.0f, 0);
|
Math_SmoothStepToF(&D_i3_801C4308[11], D_i3_801C4308[80], 0.1f, 2.0f, 0);
|
||||||
if (bossAQ->dmgType != 0) {
|
if (bossAQ->dmgType != DMG_NONE) {
|
||||||
bossAQ->dmgType = 0;
|
bossAQ->dmgType = DMG_NONE;
|
||||||
if (fabsf(D_i3_801C4308[10]) >= 5.0f) {
|
if (fabsf(D_i3_801C4308[10]) >= 5.0f) {
|
||||||
switch (bossAQ->dmgPart) {
|
switch (bossAQ->dmgPart) {
|
||||||
case 13:
|
case 13:
|
||||||
@ -3790,8 +3790,8 @@ void Aquas_801B50E8(Actor* actor) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->health != 0) {
|
if (actor->health != 0) {
|
||||||
if (actor->damage == 31) {
|
if (actor->damage == 31) {
|
||||||
actor->info.bonus = 1;
|
actor->info.bonus = 1;
|
||||||
@ -4115,8 +4115,8 @@ void Aquas_801B638C(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if ((actor->health != 0) && (actor->dmgPart == 0)) {
|
if ((actor->health != 0) && (actor->dmgPart == 0)) {
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
actor->timer_0C6 = 30;
|
actor->timer_0C6 = 30;
|
||||||
@ -4245,8 +4245,8 @@ void Aquas_801B6FF8(Actor* actor) {
|
|||||||
actor->unk_0B6 = 0;
|
actor->unk_0B6 = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->health > -100) {
|
if (actor->health > -100) {
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
@ -4649,8 +4649,8 @@ void Aquas_801B7C78(Actor* actor) {
|
|||||||
actor->health = 0;
|
actor->health = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->health != 0) {
|
if (actor->health != 0) {
|
||||||
actor->info.bonus = 0;
|
actor->info.bonus = 0;
|
||||||
if (actor->damage == 31) {
|
if (actor->damage == 31) {
|
||||||
@ -4958,8 +4958,8 @@ void Aquas_801B91A4(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if ((actor->health != 0) && (actor->state != 0)) {
|
if ((actor->health != 0) && (actor->state != 0)) {
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
@ -5208,8 +5208,8 @@ void Aquas_801BA6A4(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
actor->health = actor->itemDrop = 0;
|
actor->health = actor->itemDrop = 0;
|
||||||
@ -5275,8 +5275,8 @@ void Aquas_801BADF8(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->damage == 0) {
|
if (actor->damage == 0) {
|
||||||
gPlayer[0].hitTimer = 6;
|
gPlayer[0].hitTimer = 6;
|
||||||
gPlayer[0].unk_21C = 0;
|
gPlayer[0].unk_21C = 0;
|
||||||
@ -5738,8 +5738,8 @@ void Aquas_801BB79C(Actor* actor) {
|
|||||||
actor->iwork[9] = actor->iwork[12] = 0;
|
actor->iwork[9] = actor->iwork[12] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x2903408F, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903408F, actor->sfxSource, 4);
|
||||||
if (actor->damage != 31) {
|
if (actor->damage != 31) {
|
||||||
actor->timer_0C0 = actor->timer_0C6 = 40;
|
actor->timer_0C0 = actor->timer_0C6 = 40;
|
||||||
@ -5882,8 +5882,8 @@ void Aquas_801BC9A0(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if ((actor->health != 0) && (actor->iwork[3] == 0) && (actor->damage == 31)) {
|
if ((actor->health != 0) && (actor->iwork[3] == 0) && (actor->damage == 31)) {
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
AUDIO_PLAY_SFX(0x2903B009, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903B009, actor->sfxSource, 4);
|
||||||
@ -6436,8 +6436,8 @@ void Aquas_801BE3F8(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->health != 0) {
|
if (actor->health != 0) {
|
||||||
if (actor->state == 2) {
|
if (actor->state == 2) {
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
|
@ -436,7 +436,7 @@ void Solar_8019F20C(Actor* actor) {
|
|||||||
Solar_8019E9F4(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, 0.0f, 0.0f,
|
Solar_8019E9F4(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, 0.0f, 0.0f,
|
||||||
actor->scale * 6.5f, 2);
|
actor->scale * 6.5f, 2);
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) || ((actor->obj.id == OBJ_ACTOR_277) && (actor->vel.y < 0.0f))) {
|
if ((actor->dmgType != DMG_NONE) || ((actor->obj.id == OBJ_ACTOR_277) && (actor->vel.y < 0.0f))) {
|
||||||
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale * 4.0f);
|
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->scale * 4.0f);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
if (actor->obj.id == OBJ_ACTOR_277) {
|
if (actor->obj.id == OBJ_ACTOR_277) {
|
||||||
@ -1262,7 +1262,7 @@ void Solar_801A1F80(Boss* bossSO) {
|
|||||||
Math_SmoothStepToF(&D_ctx_801779A8[gMainController], 120.0f, 1.0f, 3.5f, 0.0f);
|
Math_SmoothStepToF(&D_ctx_801779A8[gMainController], 120.0f, 1.0f, 3.5f, 0.0f);
|
||||||
}
|
}
|
||||||
if (gBossFrameCount == 60) {
|
if (gBossFrameCount == 60) {
|
||||||
gActors[10].dmgType = 3;
|
gActors[10].dmgType = DMG_COLLISION;
|
||||||
AUDIO_PLAY_SFX(0x19036053, bossSO->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x19036053, bossSO->sfxSource, 4);
|
||||||
}
|
}
|
||||||
if (bossSO->timer_050 == 100) {
|
if (bossSO->timer_050 == 100) {
|
||||||
@ -1493,7 +1493,7 @@ void Solar_801A2C98(Boss* bossSO) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bossSO->unk_04C == 20) {
|
if (bossSO->unk_04C == 20) {
|
||||||
gActors[10].dmgType = 3;
|
gActors[10].dmgType = DMG_COLLISION;
|
||||||
AUDIO_PLAY_SFX(0x19036054, bossSO->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x19036054, bossSO->sfxSource, 4);
|
||||||
}
|
}
|
||||||
if (bossSO->unk_04C == 0) {
|
if (bossSO->unk_04C == 0) {
|
||||||
@ -1527,7 +1527,7 @@ void Solar_801A2C98(Boss* bossSO) {
|
|||||||
Solar_801A3468(bossSO);
|
Solar_801A3468(bossSO);
|
||||||
}
|
}
|
||||||
if (bossSO->swork[SO_SWK_11] == 50) {
|
if (bossSO->swork[SO_SWK_11] == 50) {
|
||||||
gActors[9].dmgType = 3;
|
gActors[9].dmgType = DMG_COLLISION;
|
||||||
AUDIO_PLAY_SFX(0x19036053, bossSO->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x19036053, bossSO->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1554,7 +1554,7 @@ void Solar_801A3128(Boss* bossSO) {
|
|||||||
Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 2000.0f, 10.0f, 1);
|
Solar_801A0CEC(&gActors[10], bossSO->obj.pos.x, bossSO->obj.pos.z + 2000.0f, 10.0f, 1);
|
||||||
}
|
}
|
||||||
if (bossSO->unk_04C == 40) {
|
if (bossSO->unk_04C == 40) {
|
||||||
gActors[10].dmgType = 3;
|
gActors[10].dmgType = DMG_COLLISION;
|
||||||
AUDIO_PLAY_SFX(0x19036054, bossSO->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x19036054, bossSO->sfxSource, 4);
|
||||||
}
|
}
|
||||||
if (bossSO->unk_04C == 0) {
|
if (bossSO->unk_04C == 0) {
|
||||||
@ -1604,7 +1604,7 @@ void Solar_801A3128(Boss* bossSO) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bossSO->swork[SO_SWK_11] == 50) {
|
if (bossSO->swork[SO_SWK_11] == 50) {
|
||||||
gActors[9].dmgType = 3;
|
gActors[9].dmgType = DMG_COLLISION;
|
||||||
AUDIO_PLAY_SFX(0x19036053, bossSO->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x19036053, bossSO->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1976,7 +1976,7 @@ void Solar_801A48B8(Boss* bossSO) {
|
|||||||
if ((bossSO->swork[SO_SWK_0] == 4) && (bossSO->unk_04C >= 60) && (bossSO->unk_04C < 67)) {
|
if ((bossSO->swork[SO_SWK_0] == 4) && (bossSO->unk_04C >= 60) && (bossSO->unk_04C < 67)) {
|
||||||
for (i = 4; i < 60; i++) {
|
for (i = 4; i < 60; i++) {
|
||||||
if (gActors[i].obj.id == OBJ_ACTOR_278) {
|
if (gActors[i].obj.id == OBJ_ACTOR_278) {
|
||||||
gActors[i].dmgType = 2;
|
gActors[i].dmgType = DMG_EXPLOSION;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2098,7 +2098,7 @@ void Solar_801A4EF8(Boss* bossSO) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bossSO->swork[SO_SWK_11] == 16) {
|
if (bossSO->swork[SO_SWK_11] == 16) {
|
||||||
gActors[10].dmgType = 2;
|
gActors[10].dmgType = DMG_EXPLOSION;
|
||||||
}
|
}
|
||||||
if (bossSO->obj.pos.y <= -900.0f) {
|
if (bossSO->obj.pos.y <= -900.0f) {
|
||||||
bossSO->state++;
|
bossSO->state++;
|
||||||
@ -2129,7 +2129,7 @@ void Solar_801A4EF8(Boss* bossSO) {
|
|||||||
if (bossSO->swork[SO_SWK_11] == 170) {
|
if (bossSO->swork[SO_SWK_11] == 170) {
|
||||||
AUDIO_PLAY_SFX(0x29432073, bossSO->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29432073, bossSO->sfxSource, 4);
|
||||||
bossSO->obj.pos.y = -500.0f;
|
bossSO->obj.pos.y = -500.0f;
|
||||||
gActors[9].dmgType = 2;
|
gActors[9].dmgType = DMG_EXPLOSION;
|
||||||
}
|
}
|
||||||
if (bossSO->swork[SO_SWK_11] <= 170) {
|
if (bossSO->swork[SO_SWK_11] <= 170) {
|
||||||
bossSO->vel.y = COS_DEG(bossSO->obj.rot.x) * 80.0f;
|
bossSO->vel.y = COS_DEG(bossSO->obj.rot.x) * 80.0f;
|
||||||
@ -2177,7 +2177,7 @@ void Solar_801A4EF8(Boss* bossSO) {
|
|||||||
bossSO->fwork[SO_FWK_0] = 0.01f;
|
bossSO->fwork[SO_FWK_0] = 0.01f;
|
||||||
}
|
}
|
||||||
if (bossSO->swork[SO_SWK_11] == 50) {
|
if (bossSO->swork[SO_SWK_11] == 50) {
|
||||||
gActors[9].dmgType = 2;
|
gActors[9].dmgType = DMG_EXPLOSION;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -655,8 +655,8 @@ void Zoness_801904CC(Actor* actor) {
|
|||||||
if (Animation_GetFrameCount(&D_ZO_600E5EC) < actor->unk_0B6) {
|
if (Animation_GetFrameCount(&D_ZO_600E5EC) < actor->unk_0B6) {
|
||||||
actor->unk_0B6 = 0;
|
actor->unk_0B6 = 0;
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->state > 0) {
|
if (actor->state > 0) {
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
@ -732,8 +732,8 @@ void Zoness_80190A00(Actor* actor) {
|
|||||||
actor->timer_0C0 = 30;
|
actor->timer_0C0 = 30;
|
||||||
}
|
}
|
||||||
Zoness_80190790(actor);
|
Zoness_80190790(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -894,8 +894,8 @@ void Zoness_80191010(Actor* actor) {
|
|||||||
func_effect_8007A6F0(&actor->obj.pos, 0x29018036);
|
func_effect_8007A6F0(&actor->obj.pos, 0x29018036);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
@ -953,8 +953,8 @@ void Zoness_80191680(Actor* actor) {
|
|||||||
if (actor->obj.pos.z < actor->fwork[0]) {
|
if (actor->obj.pos.z < actor->fwork[0]) {
|
||||||
actor->state = 1;
|
actor->state = 1;
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
AUDIO_PLAY_SFX(0x29033037, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29033037, actor->sfxSource, 4);
|
||||||
@ -1220,14 +1220,14 @@ void Zoness_80192094(Actor* actor) {
|
|||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->state < 3)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->state < 3)) {
|
||||||
if (actor->dmgType != 1) {
|
if (actor->dmgType != DMG_BEAM) {
|
||||||
BonusText_Display(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 200.0f, 5);
|
BonusText_Display(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 200.0f, 5);
|
||||||
gHitCount += 6;
|
gHitCount += 6;
|
||||||
D_ctx_80177850 = 15;
|
D_ctx_80177850 = 15;
|
||||||
actor->state = 4;
|
actor->state = 4;
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1301,8 +1301,8 @@ void Zoness_80192834(Actor* actor) {
|
|||||||
}
|
}
|
||||||
actor->obj.rot.x += 20.0f;
|
actor->obj.rot.x += 20.0f;
|
||||||
actor->obj.rot.x = Math_ModF(actor->obj.rot.x, 360.0f);
|
actor->obj.rot.x = Math_ModF(actor->obj.rot.x, 360.0f);
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
actor->health = 0;
|
actor->health = 0;
|
||||||
@ -1438,8 +1438,8 @@ void Zoness_80192E64(Actor* actor) {
|
|||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
if (actor->dmgType != 1) {
|
if (actor->dmgType != DMG_BEAM) {
|
||||||
if ((actor->state != 0) && (actor->state != 3)) {
|
if ((actor->state != 0) && (actor->state != 3)) {
|
||||||
BonusText_Display(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 200.0f, 2);
|
BonusText_Display(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 200.0f, 2);
|
||||||
gHitCount += 3;
|
gHitCount += 3;
|
||||||
@ -1449,7 +1449,7 @@ void Zoness_80192E64(Actor* actor) {
|
|||||||
} else {
|
} else {
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
if (func_play_800A73E4(&sp70, &sp6C, actor->obj.pos.x, actor->obj.pos.y - 1000.0f, actor->obj.pos.z)) {
|
if (func_play_800A73E4(&sp70, &sp6C, actor->obj.pos.x, actor->obj.pos.y - 1000.0f, actor->obj.pos.z)) {
|
||||||
Math_SmoothStepToF(&actor->obj.pos.y, sp70 + 300.0f, 0.1f, 20.0f, 0);
|
Math_SmoothStepToF(&actor->obj.pos.y, sp70 + 300.0f, 0.1f, 20.0f, 0);
|
||||||
@ -3311,7 +3311,7 @@ void Zoness_8019962C(Boss* bossZO, f32 arg1) {
|
|||||||
void Zoness_8019969C(Actor* actor) {
|
void Zoness_8019969C(Actor* actor) {
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
actor->health = 0;
|
actor->health = 0;
|
||||||
@ -3322,13 +3322,13 @@ void Zoness_8019969C(Actor* actor) {
|
|||||||
}
|
}
|
||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 200.0f, 5.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z + 200.0f, 5.0f);
|
||||||
actor->itemDrop = DROP_BOMB;
|
actor->itemDrop = DROP_BOMB;
|
||||||
actor->dmgSource = 2;
|
actor->dmgSource = DMG_SRC_2;
|
||||||
actor->obj.pos.z -= 100.0f;
|
actor->obj.pos.z -= 100.0f;
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
actor->fwork[0] += 10.0f;
|
actor->fwork[0] += 10.0f;
|
||||||
Zoness_8018FF50(actor);
|
Zoness_8018FF50(actor);
|
||||||
@ -3419,17 +3419,17 @@ void Zoness_80199A28(Actor* actor) {
|
|||||||
}
|
}
|
||||||
Math_SmoothStepToAngle(&actor->obj.rot.z, sp38, 0.1f, 1.0f, 0);
|
Math_SmoothStepToAngle(&actor->obj.rot.z, sp38, 0.1f, 1.0f, 0);
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->itemDrop = DROP_SILVER_RING_50p;
|
actor->itemDrop = DROP_SILVER_RING_50p;
|
||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y + 100.0f, actor->obj.pos.z, 7.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y + 100.0f, actor->obj.pos.z, 7.0f);
|
||||||
actor->dmgSource = 2;
|
actor->dmgSource = DMG_SRC_2;
|
||||||
actor->obj.pos.y += 200.0f;
|
actor->obj.pos.y += 200.0f;
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x1903400F);
|
func_effect_8007A6F0(&actor->obj.pos, 0x1903400F);
|
||||||
} else {
|
} else {
|
||||||
if ((fabsf(actor->obj.pos.z - gPlayer[0].trueZpos) < 800.0f) || (actor->dmgType != 0)) {
|
if ((fabsf(actor->obj.pos.z - gPlayer[0].trueZpos) < 800.0f) || (actor->dmgType != DMG_NONE)) {
|
||||||
Zoness_801999CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z);
|
Zoness_801999CC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903B009);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903B009);
|
||||||
@ -3440,7 +3440,7 @@ void Zoness_80199A28(Actor* actor) {
|
|||||||
if ((actor->timer_0BC == 0) && (actor->iwork[0] == 0)) {
|
if ((actor->timer_0BC == 0) && (actor->iwork[0] == 0)) {
|
||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y + 100.0f, actor->obj.pos.z, 7.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y + 100.0f, actor->obj.pos.z, 7.0f);
|
||||||
actor->itemDrop = DROP_SILVER_RING_50p;
|
actor->itemDrop = DROP_SILVER_RING_50p;
|
||||||
actor->dmgSource = 2;
|
actor->dmgSource = DMG_SRC_2;
|
||||||
actor->obj.pos.y += 200.0f;
|
actor->obj.pos.y += 200.0f;
|
||||||
Actor_Despawn(actor);
|
Actor_Despawn(actor);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
@ -3515,11 +3515,11 @@ void Zoness_80199F10(Actor* actor) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3677,11 +3677,11 @@ void Zoness_8019A5D4(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Zoness_8018FF50(actor);
|
Zoness_8018FF50(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
if (((gGameFrameCount % 8) == 0) && (actor->state != 0) && (actor->iwork[0] < 8) &&
|
if (((gGameFrameCount % 8) == 0) && (actor->state != 0) && (actor->iwork[0] < 8) &&
|
||||||
(func_play_800A73E4(&sp44, &sp40, actor->obj.pos.x, actor->obj.pos.y - 100.0f, actor->obj.pos.z) != 0)) {
|
(func_play_800A73E4(&sp44, &sp40, actor->obj.pos.x, actor->obj.pos.y - 100.0f, actor->obj.pos.z) != 0)) {
|
||||||
@ -3920,8 +3920,8 @@ void Zoness_8019B854(Actor* actor) {
|
|||||||
Vec3f spA8 = { 0.0f, 0.0f, 0.0f };
|
Vec3f spA8 = { 0.0f, 0.0f, 0.0f };
|
||||||
Vec3f sp9C;
|
Vec3f sp9C;
|
||||||
|
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
||||||
@ -4053,8 +4053,8 @@ void Zoness_8019BE48(Actor* actor) {
|
|||||||
actor->state++;
|
actor->state++;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if ((actor->dmgType != 0) && (actor->health != 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->health != 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
@ -4383,8 +4383,8 @@ void Zoness_8019D15C(Actor* actor) {
|
|||||||
Actor* otherActor;
|
Actor* otherActor;
|
||||||
|
|
||||||
if (actor->state == 0) {
|
if (actor->state == 0) {
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->dmgPart < 2) {
|
if (actor->dmgPart < 2) {
|
||||||
AUDIO_PLAY_SFX(0x1903001E, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x1903001E, actor->sfxSource, 4);
|
||||||
if ((actor->obj.pos.y + 268.0f) < actor->hitPos.y) {
|
if ((actor->obj.pos.y + 268.0f) < actor->hitPos.y) {
|
||||||
|
@ -119,8 +119,8 @@ void Bolse_8018BD60(Actor* this) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func_360_8002F69C(this);
|
ActorAllRange_UpdateStarWolfEvents(this);
|
||||||
func_360_8002FC00(this);
|
ActorAllRange_UpdateEvemyEvents(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 D_i4_8019EEE4[] = { -200.0f, -100.0f, -0.0f, 100.0f, 200.0f };
|
f32 D_i4_8019EEE4[] = { -200.0f, -100.0f, -0.0f, 100.0f, 200.0f };
|
||||||
@ -206,7 +206,7 @@ void Bolse_UpdateEventHandler(Actor* this) {
|
|||||||
|
|
||||||
switch (this->state) {
|
switch (this->state) {
|
||||||
case 0:
|
case 0:
|
||||||
D_360_800C9B4C = 500000;
|
gAllRangeSpawnEvent = 500000;
|
||||||
gAllRangeEventTimer = 0;
|
gAllRangeEventTimer = 0;
|
||||||
gStarWolfMsgTimer = 0;
|
gStarWolfMsgTimer = 0;
|
||||||
this->state = 2;
|
this->state = 2;
|
||||||
@ -302,7 +302,7 @@ void Bolse_UpdateEventHandler(Actor* this) {
|
|||||||
this->iwork[1] = gHitCount;
|
this->iwork[1] = gHitCount;
|
||||||
if ((gStarWolfTeamAlive[0] != 0) || (gStarWolfTeamAlive[1] != 0) || (gStarWolfTeamAlive[2] != 0) ||
|
if ((gStarWolfTeamAlive[0] != 0) || (gStarWolfTeamAlive[1] != 0) || (gStarWolfTeamAlive[2] != 0) ||
|
||||||
(gStarWolfTeamAlive[3] != 0)) {
|
(gStarWolfTeamAlive[3] != 0)) {
|
||||||
D_360_800C9B4C = gAllRangeEventTimer + 120;
|
gAllRangeSpawnEvent = gAllRangeEventTimer + 120;
|
||||||
gStarWolfMsgTimer = 1000;
|
gStarWolfMsgTimer = 1000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -332,7 +332,7 @@ void Bolse_UpdateEventHandler(Actor* this) {
|
|||||||
Math_SmoothStepToF(&player->cam.at.z, actor->obj.pos.z, 1.0f, 20000.0f, 0.0f);
|
Math_SmoothStepToF(&player->cam.at.z, actor->obj.pos.z, 1.0f, 20000.0f, 0.0f);
|
||||||
Math_SmoothStepToF(&player->camRoll, 0.0f, 0.1f, 0.2f, 0);
|
Math_SmoothStepToF(&player->camRoll, 0.0f, 0.1f, 0.2f, 0);
|
||||||
|
|
||||||
if ((gControllerPress->button & START_BUTTON) || ((D_360_800C9B4C + 300) == gAllRangeEventTimer)) {
|
if ((gControllerPress->button & START_BUTTON) || ((gAllRangeSpawnEvent + 300) == gAllRangeEventTimer)) {
|
||||||
this->state = 2;
|
this->state = 2;
|
||||||
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
||||||
func_play_800B7184(player, 1);
|
func_play_800B7184(player, 1);
|
||||||
@ -605,11 +605,11 @@ void Bolse_8018D124(Actor* actor) {
|
|||||||
bool Bolse_8018D278(Actor* actor) {
|
bool Bolse_8018D278(Actor* actor) {
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
if (actor->dmgType == 0) {
|
if (actor->dmgType == DMG_NONE) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->obj.pos.y += 150.0f;
|
actor->obj.pos.y += 150.0f;
|
||||||
|
|
||||||
func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 8.0f, 15);
|
func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 0.0f, 0.0f, 0.0f, 8.0f, 15);
|
||||||
@ -691,13 +691,13 @@ s32 Bolse_8018D4F0(Actor* actor) {
|
|||||||
bool Bolse_8018D584(Actor* actor) {
|
bool Bolse_8018D584(Actor* actor) {
|
||||||
s32 i;
|
s32 i;
|
||||||
|
|
||||||
if (actor->dmgType == 0) {
|
if (actor->dmgType == DMG_NONE) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor->dmgPart < 2) && (actor->state == 0)) {
|
if ((actor->dmgPart < 2) && (actor->state == 0)) {
|
||||||
actor->timer_0C6 = 20;
|
actor->timer_0C6 = 20;
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29024003, actor->sfxSource, 0);
|
AUDIO_PLAY_SFX(0x29024003, actor->sfxSource, 0);
|
||||||
actor->health += actor->damage;
|
actor->health += actor->damage;
|
||||||
|
|
||||||
@ -1907,7 +1907,7 @@ void Bolse_801912FC(Boss* boss) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (boss->state == 2) {
|
if (boss->state == 2) {
|
||||||
if (boss->dmgType != 0) {
|
if (boss->dmgType != DMG_NONE) {
|
||||||
boss->dmgType = DMG_NONE;
|
boss->dmgType = DMG_NONE;
|
||||||
|
|
||||||
if (boss->damage >= 16) {
|
if (boss->damage >= 16) {
|
||||||
|
@ -20,7 +20,7 @@ void Fortuna_801875F0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((counter < 10) && (actor->timer_0C0 == 0)) {
|
if ((counter < 10) && (actor->timer_0C0 == 0)) {
|
||||||
if (gAllRangeEventTimer < (D_360_800C9B4C - 500)) {
|
if (gAllRangeEventTimer < (gAllRangeSpawnEvent - 500)) {
|
||||||
actor->timer_0C0 = 40;
|
actor->timer_0C0 = 40;
|
||||||
|
|
||||||
actor->unk_04E++;
|
actor->unk_04E++;
|
||||||
@ -63,7 +63,7 @@ void Fortuna_801875F0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
func_360_8002F69C(actor);
|
ActorAllRange_UpdateStarWolfEvents(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
f32 D_8019EDEC[] = { 0.0f, 700.0f, 12000.0f };
|
f32 D_8019EDEC[] = { 0.0f, 700.0f, 12000.0f };
|
||||||
@ -115,17 +115,17 @@ void Fortuna_UpdateEvents(Actor* actor) {
|
|||||||
Radio_PlayMessage(gMsg_ID_9000, RCID_FOX);
|
Radio_PlayMessage(gMsg_ID_9000, RCID_FOX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((gAllRangeEventTimer + 400) == (0, D_360_800C9B4C)) {
|
if ((gAllRangeEventTimer + 400) == (0, gAllRangeSpawnEvent)) {
|
||||||
Radio_PlayMessage(gMsg_ID_9010, RCID_SLIPPY);
|
Radio_PlayMessage(gMsg_ID_9010, RCID_SLIPPY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((gAllRangeEventTimer + 240) == (0, D_360_800C9B4C)) {
|
if ((gAllRangeEventTimer + 240) == (0, gAllRangeSpawnEvent)) {
|
||||||
Radio_PlayMessage(gMsg_ID_9375, RCID_ROB64);
|
Radio_PlayMessage(gMsg_ID_9375, RCID_ROB64);
|
||||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 1);
|
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_BGM, 1);
|
||||||
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 1);
|
SEQCMD_STOP_SEQUENCE(SEQ_PLAYER_FANFARE, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((gAllRangeEventTimer + 100) == (0, D_360_800C9B4C)) {
|
if ((gAllRangeEventTimer + 100) == (0, gAllRangeSpawnEvent)) {
|
||||||
Radio_PlayMessage(gMsg_ID_9380, RCID_FOX);
|
Radio_PlayMessage(gMsg_ID_9380, RCID_FOX);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,7 +155,7 @@ void Fortuna_UpdateEvents(Actor* actor) {
|
|||||||
gActors[6].aiIndex = gActors[7].aiIndex = -1;
|
gActors[6].aiIndex = gActors[7].aiIndex = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((D_360_800C9B4C < gAllRangeEventTimer) && (gAllRangeEventTimer < 9970) && (gStarWolfTeamAlive[0] == 0) &&
|
if ((gAllRangeSpawnEvent < gAllRangeEventTimer) && (gAllRangeEventTimer < 9970) && (gStarWolfTeamAlive[0] == 0) &&
|
||||||
(gStarWolfTeamAlive[1] == 0) && (gStarWolfTeamAlive[2] == 0) && (gStarWolfTeamAlive[3] == 0)) {
|
(gStarWolfTeamAlive[1] == 0) && (gStarWolfTeamAlive[2] == 0) && (gStarWolfTeamAlive[3] == 0)) {
|
||||||
gAllRangeEventTimer = 9970;
|
gAllRangeEventTimer = 9970;
|
||||||
}
|
}
|
||||||
@ -218,7 +218,7 @@ void Fortuna_UpdateEvents(Actor* actor) {
|
|||||||
|
|
||||||
switch (actor->state) {
|
switch (actor->state) {
|
||||||
case 0:
|
case 0:
|
||||||
D_360_800C9B4C = 2880;
|
gAllRangeSpawnEvent = 2880;
|
||||||
for (i = 0; i < 6; i++) {
|
for (i = 0; i < 6; i++) {
|
||||||
gSavedStarWolfTeamAlive[i] = 1;
|
gSavedStarWolfTeamAlive[i] = 1;
|
||||||
gStarWolfTeamAlive[i] = 1;
|
gStarWolfTeamAlive[i] = 1;
|
||||||
@ -232,7 +232,7 @@ void Fortuna_UpdateEvents(Actor* actor) {
|
|||||||
player->pos.y = 670.0f;
|
player->pos.y = 670.0f;
|
||||||
gAllRangeEventTimer = 200;
|
gAllRangeEventTimer = 200;
|
||||||
if (gAllRangeCheckpoint != 0) {
|
if (gAllRangeCheckpoint != 0) {
|
||||||
gAllRangeEventTimer = D_360_800C9B4C - 1;
|
gAllRangeEventTimer = gAllRangeSpawnEvent - 1;
|
||||||
gHitCount = gSavedHitCount;
|
gHitCount = gSavedHitCount;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -281,7 +281,7 @@ void Fortuna_UpdateEvents(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&player->cam.at.y, actor4->obj.pos.y, 1.0f, 20000.0f, 0.0f);
|
Math_SmoothStepToF(&player->cam.at.y, actor4->obj.pos.y, 1.0f, 20000.0f, 0.0f);
|
||||||
Math_SmoothStepToF(&player->cam.at.z, actor4->obj.pos.z, 1.0f, 20000.0f, 0.0f);
|
Math_SmoothStepToF(&player->cam.at.z, actor4->obj.pos.z, 1.0f, 20000.0f, 0.0f);
|
||||||
Math_SmoothStepToF(&player->camRoll, 0.0f, 1.0f, 1000.0f, 0.0f);
|
Math_SmoothStepToF(&player->camRoll, 0.0f, 1.0f, 1000.0f, 0.0f);
|
||||||
if (gAllRangeEventTimer == (D_360_800C9B4C + 2)) {
|
if (gAllRangeEventTimer == (gAllRangeSpawnEvent + 2)) {
|
||||||
gStarWolfMsgTimer = 883;
|
gStarWolfMsgTimer = 883;
|
||||||
gAllRangeCheckpoint = 1;
|
gAllRangeCheckpoint = 1;
|
||||||
|
|
||||||
@ -292,7 +292,7 @@ void Fortuna_UpdateEvents(Actor* actor) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((gControllerPress->button & START_BUTTON) || (gAllRangeEventTimer == (D_360_800C9B4C + 440))) {
|
if ((gControllerPress->button & START_BUTTON) || (gAllRangeEventTimer == (gAllRangeSpawnEvent + 440))) {
|
||||||
actor->state = 2;
|
actor->state = 2;
|
||||||
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
||||||
func_play_800B7184(player, 1);
|
func_play_800B7184(player, 1);
|
||||||
@ -489,8 +489,8 @@ void Fortuna_80188AD0(Actor* actor) {
|
|||||||
actor->obj.pos.y -= 230.0f;
|
actor->obj.pos.y -= 230.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor->dmgType != 0) && (actor->state == 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->state == 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->state = 1;
|
actor->state = 1;
|
||||||
actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_FO_600FF64);
|
actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_FO_600FF64);
|
||||||
actor->info.targetOffset = 0.0f;
|
actor->info.targetOffset = 0.0f;
|
||||||
|
@ -298,9 +298,9 @@ void Katina_LevelStart(Player* player) {
|
|||||||
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, MTXF_NEW);
|
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, MTXF_NEW);
|
||||||
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
||||||
func_enmy2_8006EEFC(5, actor->obj.pos.x + (dest.x * 1.5), actor->obj.pos.y + (dest.y * 1.5),
|
Actor_SpawnPlayerLaser(5, actor->obj.pos.x + (dest.x * 1.5), actor->obj.pos.y + (dest.y * 1.5),
|
||||||
actor->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, actor->obj.rot.x,
|
actor->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, actor->obj.rot.x,
|
||||||
actor->obj.rot.y, actor->obj.rot.z);
|
actor->obj.rot.y, actor->obj.rot.z);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 35:
|
case 35:
|
||||||
@ -310,9 +310,9 @@ void Katina_LevelStart(Player* player) {
|
|||||||
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, MTXF_NEW);
|
Matrix_RotateY(gCalcMatrix, actor->obj.rot.y * M_DTOR, MTXF_NEW);
|
||||||
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, MTXF_APPLY);
|
Matrix_RotateX(gCalcMatrix, actor->obj.rot.x * M_DTOR, MTXF_APPLY);
|
||||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
Matrix_MultVec3fNoTranslate(gCalcMatrix, &src, &dest);
|
||||||
func_enmy2_8006EEFC(6, actor->obj.pos.x + (dest.x * 1.5), actor->obj.pos.y + (dest.y * 1.5),
|
Actor_SpawnPlayerLaser(6, actor->obj.pos.x + (dest.x * 1.5), actor->obj.pos.y + (dest.y * 1.5),
|
||||||
actor->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, actor->obj.rot.x,
|
actor->obj.pos.z + (dest.z * 1.5), dest.x, dest.y, dest.z, actor->obj.rot.x,
|
||||||
actor->obj.rot.y, actor->obj.rot.z);
|
actor->obj.rot.y, actor->obj.rot.z);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 45:
|
case 45:
|
||||||
@ -2104,10 +2104,10 @@ void Katina_80198AA0(Actor* actor) {
|
|||||||
yVel = (-xSin * 200.0f * 0.5f);
|
yVel = (-xSin * 200.0f * 0.5f);
|
||||||
xVel = (xCos * 200.0f * 0.5f);
|
xVel = (xCos * 200.0f * 0.5f);
|
||||||
zVel = (xCos * 200.0f * 0.5f);
|
zVel = (xCos * 200.0f * 0.5f);
|
||||||
func_enmy2_8006EEFC(actor->aiType, actor->obj.pos.x + ((ySin * xVel) * 1.5f), actor->obj.pos.y + (yVel * 1.5f),
|
Actor_SpawnPlayerLaser(actor->aiType, actor->obj.pos.x + ((ySin * xVel) * 1.5f),
|
||||||
actor->obj.pos.z + ((yCos * zVel) * 1.5f), (ySin * (xCos * 200.0f * 0.5f)),
|
actor->obj.pos.y + (yVel * 1.5f), actor->obj.pos.z + ((yCos * zVel) * 1.5f),
|
||||||
(-xSin * 200.0f * 0.5f), (yCos * (xCos * 200.0f * 0.5f)), actor->obj.rot.x,
|
(ySin * (xCos * 200.0f * 0.5f)), (-xSin * 200.0f * 0.5f),
|
||||||
actor->obj.rot.y, actor->obj.rot.z);
|
(yCos * (xCos * 200.0f * 0.5f)), actor->obj.rot.x, actor->obj.rot.y, actor->obj.rot.z);
|
||||||
}
|
}
|
||||||
ActorAllRange_ApplyDamage(actor);
|
ActorAllRange_ApplyDamage(actor);
|
||||||
radarMark = &gRadarMarks[actor->index];
|
radarMark = &gRadarMarks[actor->index];
|
||||||
|
@ -59,7 +59,7 @@ void SectorZ_80199900(Actor* actor, s32 arg1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((D_i4_801A0560 == 3) && (gLeveLClearStatus[LEVEL_ZONESS] != 0)) {
|
if ((D_i4_801A0560 == 3) && (gLeveLClearStatus[LEVEL_ZONESS] != 0)) {
|
||||||
D_360_800C9B4C = gAllRangeEventTimer + 110;
|
gAllRangeSpawnEvent = gAllRangeEventTimer + 110;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -156,7 +156,7 @@ void SectorZ_Missile_Update(Actor* this) {
|
|||||||
(fabsf(this->fwork[MISSILE_TARGET_Z] - this->obj.pos.z) < 800.0f)) {
|
(fabsf(this->fwork[MISSILE_TARGET_Z] - this->obj.pos.z) < 800.0f)) {
|
||||||
SectorZ_80199900(this, 0);
|
SectorZ_80199900(this, 0);
|
||||||
gCameraShake = 25;
|
gCameraShake = 25;
|
||||||
gBosses[0].dmgType = DMG_zRot_0FC;
|
gBosses[0].dmgType = DMG_UNK_100;
|
||||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN)) {
|
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_ACTIVE) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_U_TURN)) {
|
||||||
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
|
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_LEVEL_COMPLETE;
|
||||||
gPlayer[0].csState = 0;
|
gPlayer[0].csState = 0;
|
||||||
@ -251,7 +251,7 @@ void SectorZ_8019A1D0(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SectorZ_8019A2F4(Actor* actor) {
|
void SectorZ_8019A2F4(Actor* actor) {
|
||||||
if (gAllRangeEventTimer == D_360_800C9B4C) {
|
if (gAllRangeEventTimer == gAllRangeSpawnEvent) {
|
||||||
SectorZ_8019A1D0();
|
SectorZ_8019A1D0();
|
||||||
gCsFrameCount = 0;
|
gCsFrameCount = 0;
|
||||||
actor->timer_0BC = 400;
|
actor->timer_0BC = 400;
|
||||||
@ -447,7 +447,7 @@ void SectorZ_8019A3E8(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
func_360_8002FC00(actor);
|
ActorAllRange_UpdateEvemyEvents(actor);
|
||||||
SectorZ_8019A2F4(actor);
|
SectorZ_8019A2F4(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,7 +486,7 @@ void SectorZ_UpdateEvents(Actor* actor) {
|
|||||||
if (gAllRangeCheckpoint != 0) {
|
if (gAllRangeCheckpoint != 0) {
|
||||||
gHitCount = gSavedHitCount;
|
gHitCount = gSavedHitCount;
|
||||||
}
|
}
|
||||||
D_360_800C9B4C = 1000000;
|
gAllRangeSpawnEvent = 1000000;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
if (SectorZ_8019AA9C(player) == 0) {
|
if (SectorZ_8019AA9C(player) == 0) {
|
||||||
@ -1677,9 +1677,9 @@ void SectorZ_8019E234(Actor* actor) {
|
|||||||
actor->obj.rot.x += actor->unk_0F4.x;
|
actor->obj.rot.x += actor->unk_0F4.x;
|
||||||
actor->obj.rot.y += actor->unk_0F4.y;
|
actor->obj.rot.y += actor->unk_0F4.y;
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->timer_0C6 = 20;
|
actor->timer_0C6 = 20;
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
@ -1719,8 +1719,8 @@ void SectorZ_8019E454(Boss* boss) {
|
|||||||
Vec3f src;
|
Vec3f src;
|
||||||
Vec3f dest;
|
Vec3f dest;
|
||||||
|
|
||||||
if (boss->dmgType == DMG_zRot_0FC) {
|
if (boss->dmgType == DMG_UNK_100) {
|
||||||
boss->dmgType = 0;
|
boss->dmgType = DMG_NONE;
|
||||||
boss->timer_050 = 10;
|
boss->timer_050 = 10;
|
||||||
boss->timer_052 = 60;
|
boss->timer_052 = 60;
|
||||||
boss->state = 1;
|
boss->state = 1;
|
||||||
|
@ -730,11 +730,11 @@ void Macbeth_8019BE50(Actor* actor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool Macbeth_8019C4EC(Actor* actor) {
|
bool Macbeth_8019C4EC(Actor* actor) {
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->dmgPart == 1) {
|
if (actor->dmgPart == 1) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
D_i5_801BE320[22] = 0;
|
D_i5_801BE320[22] = 0;
|
||||||
D_i5_801BE320[4] = 120;
|
D_i5_801BE320[4] = 120;
|
||||||
@ -899,8 +899,8 @@ void Macbeth_8019C778(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -961,8 +961,8 @@ void Macbeth_8019CE88(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
||||||
Macbeth_801A015C(actor);
|
Macbeth_801A015C(actor);
|
||||||
Macbeth_8019A87C(actor);
|
Macbeth_8019A87C(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
Macbeth_8019BE50(actor);
|
Macbeth_8019BE50(actor);
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
@ -1098,8 +1098,8 @@ void Macbeth_8019D700(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0);
|
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0);
|
||||||
Macbeth_801A015C(actor);
|
Macbeth_801A015C(actor);
|
||||||
Macbeth_8019A830(actor);
|
Macbeth_8019A830(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
Macbeth_8019BE50(actor);
|
Macbeth_8019BE50(actor);
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
@ -1121,11 +1121,11 @@ void Macbeth_8019D910(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
|
|
||||||
switch (*arg1) {
|
switch (*arg1) {
|
||||||
case 0:
|
case 0:
|
||||||
if (((actor->dmgType != 0) && (arg3 == actor->dmgPart)) ||
|
if (((actor->dmgType != DMG_NONE) && (arg3 == actor->dmgPart)) ||
|
||||||
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
||||||
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 20);
|
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 20);
|
||||||
actor->iwork[arg3 + 6] = 15;
|
actor->iwork[arg3 + 6] = 15;
|
||||||
@ -1135,8 +1135,8 @@ void Macbeth_8019D910(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
}
|
}
|
||||||
} else if ((actor->dmgType != 0) && (actor->dmgPart == 0)) {
|
} else if ((actor->dmgType != DMG_NONE) && (actor->dmgPart == 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1158,12 +1158,12 @@ void Macbeth_8019D910(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (((actor->dmgType != 0) && (arg3 == actor->dmgPart)) ||
|
if (((actor->dmgType != DMG_NONE) && (arg3 == actor->dmgPart)) ||
|
||||||
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5])) ||
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5])) ||
|
||||||
((actor->obj.id == OBJ_ACTOR_209) && (arg3 == 2))) {
|
((actor->obj.id == OBJ_ACTOR_209) && (arg3 == 2))) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
||||||
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 20);
|
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 20);
|
||||||
actor->iwork[arg3 + 6] = 20;
|
actor->iwork[arg3 + 6] = 20;
|
||||||
@ -1175,8 +1175,8 @@ void Macbeth_8019D910(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
gHitCount++;
|
gHitCount++;
|
||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
}
|
}
|
||||||
} else if ((actor->dmgType != 0) && (actor->dmgPart == 0)) {
|
} else if ((actor->dmgType != DMG_NONE) && (actor->dmgPart == 0)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1264,8 +1264,8 @@ void Macbeth_8019E410(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
||||||
Macbeth_801A015C(actor);
|
Macbeth_801A015C(actor);
|
||||||
Macbeth_8019A87C(actor);
|
Macbeth_8019A87C(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
Macbeth_8019BE50(actor);
|
Macbeth_8019BE50(actor);
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
@ -1287,11 +1287,11 @@ f32 D_i5_801BE24C;
|
|||||||
void Macbeth_8019E624(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f32 arg5, s32* arg6) {
|
void Macbeth_8019E624(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f32 arg5, s32* arg6) {
|
||||||
switch (*arg1) {
|
switch (*arg1) {
|
||||||
case 0:
|
case 0:
|
||||||
if (((actor->dmgType != 0) && (arg3 == actor->dmgPart)) ||
|
if (((actor->dmgType != DMG_NONE) && (arg3 == actor->dmgPart)) ||
|
||||||
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
||||||
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 10);
|
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 10);
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
@ -1301,8 +1301,8 @@ void Macbeth_8019E624(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
}
|
}
|
||||||
} else if (actor->dmgType != 0) {
|
} else if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
Macbeth_8019B580(actor, arg2);
|
Macbeth_8019B580(actor, arg2);
|
||||||
@ -1314,11 +1314,11 @@ void Macbeth_8019E624(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (((actor->dmgType != 0) && (arg3 == actor->dmgPart)) ||
|
if (((actor->dmgType != DMG_NONE) && (arg3 == actor->dmgPart)) ||
|
||||||
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
||||||
actor->vel.x, actor->vel.y, actor->vel.z, 0.2f, 10);
|
actor->vel.x, actor->vel.y, actor->vel.z, 0.2f, 10);
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
@ -1330,8 +1330,8 @@ void Macbeth_8019E624(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1372,8 +1372,8 @@ void Macbeth_8019EA60(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
||||||
Macbeth_801A015C(actor);
|
Macbeth_801A015C(actor);
|
||||||
Macbeth_8019A87C(actor);
|
Macbeth_8019A87C(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
Macbeth_8019BE50(actor);
|
Macbeth_8019BE50(actor);
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
@ -1393,11 +1393,11 @@ void Macbeth_8019EA60(Actor* actor) {
|
|||||||
void Macbeth_8019EBF8(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f32 arg5, s32* arg6) {
|
void Macbeth_8019EBF8(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f32 arg5, s32* arg6) {
|
||||||
switch (*arg1) {
|
switch (*arg1) {
|
||||||
case 0:
|
case 0:
|
||||||
if (((actor->dmgType != 0) && (arg3 == actor->dmgPart)) ||
|
if (((actor->dmgType != DMG_NONE) && (arg3 == actor->dmgPart)) ||
|
||||||
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
func_effect_8007C120(actor->obj.pos.x + arg4, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg5,
|
||||||
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 10);
|
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 10);
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
@ -1408,8 +1408,8 @@ void Macbeth_8019EBF8(Actor* actor, s32* arg1, s32* arg2, s32 arg3, f32 arg4, f3
|
|||||||
gHitCount++;
|
gHitCount++;
|
||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
}
|
}
|
||||||
} else if (actor->dmgType != 0) {
|
} else if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
Macbeth_8019B580(actor, arg2);
|
Macbeth_8019B580(actor, arg2);
|
||||||
@ -1465,7 +1465,7 @@ void Macbeth_8019EE68(Actor* actor) {
|
|||||||
Macbeth_801A015C(actor);
|
Macbeth_801A015C(actor);
|
||||||
Macbeth_8019A87C(actor);
|
Macbeth_8019A87C(actor);
|
||||||
if (gCameraShake == 20) {
|
if (gCameraShake == 20) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
Macbeth_8019BE50(actor);
|
Macbeth_8019BE50(actor);
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
@ -1641,11 +1641,11 @@ void Macbeth_8019F164(Actor* actor) {
|
|||||||
void Macbeth_8019FC54(Actor* actor, s32* arg1, s32* arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6, s32* arg7) {
|
void Macbeth_8019FC54(Actor* actor, s32* arg1, s32* arg2, s32 arg3, s32 arg4, f32 arg5, f32 arg6, s32* arg7) {
|
||||||
switch (*arg1) {
|
switch (*arg1) {
|
||||||
case 0:
|
case 0:
|
||||||
if (((actor->dmgType != 0) && (actor->dmgPart >= arg3) && (arg4 >= actor->dmgPart)) ||
|
if (((actor->dmgType != DMG_NONE) && (actor->dmgPart >= arg3) && (arg4 >= actor->dmgPart)) ||
|
||||||
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
((D_MA_801BE2F0[1] - 1 == actor->iwork[5]) && (actor->iwork[5] < D_MA_801BE2F0[3])) ||
|
||||||
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
(((D_MA_801BE2F0[1] + 1) == actor->iwork[5]) && (D_MA_801BE2F0[3] < actor->iwork[5]))) {
|
||||||
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
func_effect_8007C120(actor->obj.pos.x + arg5, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg6,
|
func_effect_8007C120(actor->obj.pos.x + arg5, actor->obj.pos.y + 200.0f, actor->obj.pos.z + arg6,
|
||||||
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 10);
|
actor->vel.x, actor->vel.y, actor->vel.z, 0.15f, 10);
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
@ -1659,8 +1659,8 @@ void Macbeth_8019FC54(Actor* actor, s32* arg1, s32* arg2, s32 arg3, s32 arg4, f3
|
|||||||
}
|
}
|
||||||
(*arg1)++;
|
(*arg1)++;
|
||||||
}
|
}
|
||||||
} else if (actor->dmgType != 0) {
|
} else if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
Macbeth_8019B580(actor, arg2);
|
Macbeth_8019B580(actor, arg2);
|
||||||
@ -1712,8 +1712,8 @@ void Macbeth_8019FF9C(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.02f, 10.0f, 0.01f);
|
||||||
Macbeth_801A015C(actor);
|
Macbeth_801A015C(actor);
|
||||||
Macbeth_8019A87C(actor);
|
Macbeth_8019A87C(actor);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
Macbeth_8019BE50(actor);
|
Macbeth_8019BE50(actor);
|
||||||
actor->state = 3;
|
actor->state = 3;
|
||||||
@ -2783,8 +2783,8 @@ void Macbeth_801A3E98(Actor* actor) {
|
|||||||
|
|
||||||
switch (actor->state) {
|
switch (actor->state) {
|
||||||
case 0:
|
case 0:
|
||||||
if ((actor->dmgType != 0) && (actor->dmgType != 3)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->dmgType != DMG_COLLISION)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x1903205F, actor->sfxSource, 0);
|
AUDIO_PLAY_SFX(0x1903205F, actor->sfxSource, 0);
|
||||||
actor->state = 1;
|
actor->state = 1;
|
||||||
}
|
}
|
||||||
@ -2812,9 +2812,9 @@ void Macbeth_801A3E98(Actor* actor) {
|
|||||||
case 3:
|
case 3:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
Math_SmoothStepToF(&actor->fwork[0], 30.0f, 0.4f, 10.0f, 0.0f);
|
Math_SmoothStepToF(&actor->fwork[0], 30.0f, 0.4f, 10.0f, 0.0f);
|
||||||
Math_SmoothStepToF(&actor->fwork[4], 30.0f, 0.4f, 10.0f, 0.0f);
|
Math_SmoothStepToF(&actor->fwork[4], 30.0f, 0.4f, 10.0f, 0.0f);
|
||||||
@ -2946,7 +2946,7 @@ void Macbeth_801A46A0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Macbeth_801A49B8(Actor* actor) {
|
void Macbeth_801A49B8(Actor* actor) {
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
AUDIO_PLAY_SFX(0x29024003, actor->sfxSource, 0);
|
AUDIO_PLAY_SFX(0x29024003, actor->sfxSource, 0);
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
@ -2955,7 +2955,7 @@ void Macbeth_801A49B8(Actor* actor) {
|
|||||||
gHitCount++;
|
gHitCount++;
|
||||||
actor->state = 2;
|
actor->state = 2;
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3031,8 +3031,8 @@ void Macbeth_801A4B24(Actor* actor) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
if ((actor->dmgType != 0) && (actor->dmgPart == 3)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->dmgPart == 3)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
D_MA_801BE2F0[5] = 1;
|
D_MA_801BE2F0[5] = 1;
|
||||||
|
|
||||||
gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]);
|
gLevelObjects = SEGMENTED_TO_VIRTUAL(gLevelObjectInits[gCurrentLevel]);
|
||||||
@ -3070,8 +3070,8 @@ void Macbeth_801A4B24(Actor* actor) {
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
Math_SmoothStepToF(&actor->fwork[0], 30, 0.4f, actor->fwork[1], 0.0f);
|
Math_SmoothStepToF(&actor->fwork[0], 30, 0.4f, actor->fwork[1], 0.0f);
|
||||||
@ -3153,7 +3153,7 @@ s32 Macbeth_801A55D4(s32 arg0, Vec3f* arg1, Vec3f* arg2, s32 arg3) {
|
|||||||
if ((actor->obj.status >= OBJ_ACTIVE) && (fabsf(arg1->x - actor->obj.pos.x) < 1000.0f) &&
|
if ((actor->obj.status >= OBJ_ACTIVE) && (fabsf(arg1->x - actor->obj.pos.x) < 1000.0f) &&
|
||||||
(fabsf(arg1->z - actor->obj.pos.z) < 1500.0f) && (arg0 != i) && (actor->info.unk_16 != 2) &&
|
(fabsf(arg1->z - actor->obj.pos.z) < 1500.0f) && (arg0 != i) && (actor->info.unk_16 != 2) &&
|
||||||
(actor->timer_0C2 == 0) && (Object_CheckSingleHitbox(arg1, actor->info.hitbox, &actor->obj.pos) != 0)) {
|
(actor->timer_0C2 == 0) && (Object_CheckSingleHitbox(arg1, actor->info.hitbox, &actor->obj.pos) != 0)) {
|
||||||
actor->dmgType = 1;
|
actor->dmgType = DMG_BEAM;
|
||||||
actor->dmgPart = -1;
|
actor->dmgPart = -1;
|
||||||
actor->hitPos.x = arg1->x;
|
actor->hitPos.x = arg1->x;
|
||||||
actor->hitPos.y = arg1->y;
|
actor->hitPos.y = arg1->y;
|
||||||
@ -3287,8 +3287,8 @@ void Macbeth_801A5E54(Actor* actor) {
|
|||||||
}
|
}
|
||||||
Math_SmoothStepToF(&actor->obj.pos.x, actor->fwork[0] + (actor->fwork[2] * 400.0f), 0.1f, 4.0f, 0.01f);
|
Math_SmoothStepToF(&actor->obj.pos.x, actor->fwork[0] + (actor->fwork[2] * 400.0f), 0.1f, 4.0f, 0.01f);
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3311,8 +3311,8 @@ void Macbeth_801A5FD0(Actor* actor) {
|
|||||||
}
|
}
|
||||||
Math_SmoothStepToF(&actor->obj.pos.y, actor->fwork[1] + 356.0f, 0.4f, 20.0f, 0.01f);
|
Math_SmoothStepToF(&actor->obj.pos.y, actor->fwork[1] + 356.0f, 0.4f, 20.0f, 0.01f);
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3334,7 +3334,7 @@ void Macbeth_801A6144(Actor* actor) {
|
|||||||
|
|
||||||
switch (actor->state) {
|
switch (actor->state) {
|
||||||
case 0:
|
case 0:
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
func_effect_8007C120(actor->obj.pos.x, actor->obj.pos.y + 100.0f, actor->obj.pos.z, actor->vel.x,
|
func_effect_8007C120(actor->obj.pos.x, actor->obj.pos.y + 100.0f, actor->obj.pos.z, actor->vel.x,
|
||||||
actor->vel.y, actor->vel.z, 0.15f, 20);
|
actor->vel.y, actor->vel.z, 0.15f, 20);
|
||||||
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
||||||
@ -3358,7 +3358,7 @@ void Macbeth_801A6144(Actor* actor) {
|
|||||||
actor->timer_0BC = 20;
|
actor->timer_0BC = 20;
|
||||||
actor->state = 1;
|
actor->state = 1;
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
@ -3410,8 +3410,8 @@ void Macbeth_801A67C8(Actor* actor) {
|
|||||||
if ((gPlayer[0].trueZpos - actor->obj.pos.z) < -300.0f) {
|
if ((gPlayer[0].trueZpos - actor->obj.pos.z) < -300.0f) {
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->dmgPart == -1)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->dmgPart == -1)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->obj.pos.x <= gPlayer[0].pos.x) {
|
if (actor->obj.pos.x <= gPlayer[0].pos.x) {
|
||||||
actor->iwork[4] = 1;
|
actor->iwork[4] = 1;
|
||||||
} else {
|
} else {
|
||||||
@ -4058,8 +4058,8 @@ void Macbeth_801A7E7C(Actor* actor) {
|
|||||||
actor->state = 4;
|
actor->state = 4;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->iwork[9] = 15;
|
actor->iwork[9] = 15;
|
||||||
D_i5_801BE320[29] -= actor->damage;
|
D_i5_801BE320[29] -= actor->damage;
|
||||||
if (D_i5_801BE320[29] <= 0) {
|
if (D_i5_801BE320[29] <= 0) {
|
||||||
@ -4489,7 +4489,7 @@ void Macbeth_801A7E7C(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&D_i5_801BE368[32], actor->obj.pos.x + RAND_FLOAT(500.0f), 0.2f, 20.0f, 0.01f);
|
Math_SmoothStepToF(&D_i5_801BE368[32], actor->obj.pos.x + RAND_FLOAT(500.0f), 0.2f, 20.0f, 0.01f);
|
||||||
Math_SmoothStepToF(&D_i5_801BE368[33], actor->obj.pos.y + RAND_FLOAT(100.0f), 0.2f, 10.0f, 0.01f);
|
Math_SmoothStepToF(&D_i5_801BE368[33], actor->obj.pos.y + RAND_FLOAT(100.0f), 0.2f, 10.0f, 0.01f);
|
||||||
Math_SmoothStepToF(&D_i5_801BE368[34], actor->obj.pos.y + RAND_FLOAT(500.0f), 0.2f, 20.0f, 0.01f);
|
Math_SmoothStepToF(&D_i5_801BE368[34], actor->obj.pos.y + RAND_FLOAT(500.0f), 0.2f, 20.0f, 0.01f);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
gPlayer[0].shields = 0;
|
gPlayer[0].shields = 0;
|
||||||
}
|
}
|
||||||
if (((gGameFrameCount % 16) == 0)) {
|
if (((gGameFrameCount % 16) == 0)) {
|
||||||
@ -4535,8 +4535,8 @@ void Macbeth_801A7E7C(Actor* actor) {
|
|||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->state >= 2)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->state >= 2)) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if ((actor->dmgPart == 0) && (D_i5_801BE320[9] > 0) && ((gPlayer[0].trueZpos - actor->obj.pos.z) > 200.0f)) {
|
if ((actor->dmgPart == 0) && (D_i5_801BE320[9] > 0) && ((gPlayer[0].trueZpos - actor->obj.pos.z) > 200.0f)) {
|
||||||
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
@ -4883,8 +4883,8 @@ void Macbeth_801AC438(Actor* actor) {
|
|||||||
Macbeth_8019A830(actor);
|
Macbeth_8019A830(actor);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -5372,8 +5372,8 @@ void Macbeth_801ADD68(Actor* actor) {
|
|||||||
} else if (actor->iwork[0] > 0) {
|
} else if (actor->iwork[0] > 0) {
|
||||||
actor->iwork[0] -= 1;
|
actor->iwork[0] -= 1;
|
||||||
}
|
}
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->iwork[7] = 15;
|
actor->iwork[7] = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
|
|
||||||
@ -5394,7 +5394,7 @@ void Macbeth_801ADD68(Actor* actor) {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Vec3f D_i5_801BA784[8] = {
|
static Vec3f D_i5_801BA784[8] = {
|
||||||
@ -5613,9 +5613,9 @@ void Macbeth_801AEC04(Actor* actor) {
|
|||||||
} else {
|
} else {
|
||||||
actor->fwork[1] = 32.0f;
|
actor->fwork[1] = 32.0f;
|
||||||
}
|
}
|
||||||
if ((actor->dmgType != 0) && (actor->dmgPart == 0)) {
|
if ((actor->dmgType != DMG_NONE) && (actor->dmgPart == 0)) {
|
||||||
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
@ -6753,9 +6753,9 @@ void Macbeth_801B38E0(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
D_ctx_801782B8 = D_ctx_801782BC = D_ctx_801782C0 = D_ctx_801782D0 = gBossActive = D_ctx_8017828C = D_ctx_8017812C =
|
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;
|
gPrevEventActorIndex = gFormationLeaderIndex = 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 =
|
gFormationInitPos.x = gFormationInitPos.y = gFormationInitPos.z = gFormationInitRot.x = gFormationInitRot.y =
|
||||||
0.0f;
|
gFormationInitRot.z = 0.0f;
|
||||||
|
|
||||||
for (i = 0; i < 10; i++) {
|
for (i = 0; i < 10; i++) {
|
||||||
gTeamArrowsViewPos[i].x = gTeamArrowsViewPos[i].y = gTeamArrowsViewPos[i].z = 100.0f;
|
gTeamArrowsViewPos[i].x = gTeamArrowsViewPos[i].y = gTeamArrowsViewPos[i].z = 100.0f;
|
||||||
|
@ -304,7 +304,7 @@ void Titania_801895B8(Actor* actor) {
|
|||||||
actor->vel.y = sp48.y;
|
actor->vel.y = sp48.y;
|
||||||
actor->vel.z = sp48.z;
|
actor->vel.z = sp48.z;
|
||||||
|
|
||||||
if (actor->dmgType > 0) {
|
if (actor->dmgType > DMG_NONE) {
|
||||||
if (Rand_ZeroOne() <= 0.25f) {
|
if (Rand_ZeroOne() <= 0.25f) {
|
||||||
actor->itemDrop = DROP_SILVER_RING_50p;
|
actor->itemDrop = DROP_SILVER_RING_50p;
|
||||||
} else {
|
} else {
|
||||||
@ -353,8 +353,8 @@ void Titania_80189CC8(Actor* actor) {
|
|||||||
f32 temp;
|
f32 temp;
|
||||||
|
|
||||||
if (actor->health > 0) {
|
if (actor->health > 0) {
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
@ -493,12 +493,12 @@ void Titania_8018A544(Actor* actor) {
|
|||||||
|
|
||||||
actor->unk_0C9 = 1;
|
actor->unk_0C9 = 1;
|
||||||
|
|
||||||
if ((actor->scale != 1.0f) && (actor->dmgType == 3)) {
|
if ((actor->scale != 1.0f) && (actor->dmgType == DMG_COLLISION)) {
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 15;
|
actor->timer_0C6 = 15;
|
||||||
actor->health += actor->damage;
|
actor->health += actor->damage;
|
||||||
if (actor->scale == 1.0f) {
|
if (actor->scale == 1.0f) {
|
||||||
@ -652,7 +652,7 @@ void Titania_8018AB44(Actor* actor) {
|
|||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Vec3f D_i5_801B75AC = { -70.0f, 50.0f, 212.0f };
|
static Vec3f D_i5_801B75AC = { -70.0f, 50.0f, 212.0f };
|
||||||
@ -774,8 +774,8 @@ void Titania_8018B268(Actor* actor) {
|
|||||||
Actor* sp3C = actor->iwork[0];
|
Actor* sp3C = actor->iwork[0];
|
||||||
Actor* sp38 = actor->iwork[1];
|
Actor* sp38 = actor->iwork[1];
|
||||||
|
|
||||||
if (actor->dmgType > 0) {
|
if (actor->dmgType > DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
if (actor->health > 0) {
|
if (actor->health > 0) {
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
@ -1018,11 +1018,11 @@ void Titania_8018B9D0(Actor* actor) {
|
|||||||
|
|
||||||
actor->obj.rot.x = (var_fa0 / 130.0f) * 90.0f;
|
actor->obj.rot.x = (var_fa0 / 130.0f) * 90.0f;
|
||||||
|
|
||||||
if (actor->dmgType == 1) {
|
if (actor->dmgType == DMG_BEAM) {
|
||||||
AUDIO_PLAY_SFX(0x19020008, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x19020008, actor->sfxSource, 4);
|
||||||
sp44 = actor->obj.pos.x - actor->hitPos.x;
|
sp44 = actor->obj.pos.x - actor->hitPos.x;
|
||||||
sp40 = fabsf(sp44);
|
sp40 = fabsf(sp44);
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->state = 1;
|
actor->state = 1;
|
||||||
actor->timer_0BC = 0;
|
actor->timer_0BC = 0;
|
||||||
actor->timer_0BE = 0;
|
actor->timer_0BE = 0;
|
||||||
@ -1299,7 +1299,8 @@ void Titania_8018C8A8(Actor* actor) {
|
|||||||
actor->iwork[6]--;
|
actor->iwork[6]--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((actor->health > 0) && (actor->dmgType > 0) && (actor->dmgType != 3) && (actor->state >= 3)) {
|
if ((actor->health > 0) && (actor->dmgType > DMG_NONE) && (actor->dmgType != DMG_COLLISION) &&
|
||||||
|
(actor->state >= 3)) {
|
||||||
if ((actor->health > 0) && (actor->dmgPart >= 0) && (actor->dmgPart < 3)) {
|
if ((actor->health > 0) && (actor->dmgPart >= 0) && (actor->dmgPart < 3)) {
|
||||||
actor->iwork[5] = 10;
|
actor->iwork[5] = 10;
|
||||||
if (actor->state == 4) {
|
if (actor->state == 4) {
|
||||||
@ -1321,10 +1322,10 @@ void Titania_8018C8A8(Actor* actor) {
|
|||||||
} else {
|
} else {
|
||||||
AUDIO_PLAY_SFX(0x29034041, actor->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29034041, actor->sfxSource, 4);
|
||||||
}
|
}
|
||||||
} else if (actor->dmgType == 1) {
|
} else if (actor->dmgType == DMG_BEAM) {
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
func_effect_8007A6F0(&actor->obj.pos, 0x29121007);
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (actor->state) {
|
switch (actor->state) {
|
||||||
@ -1682,7 +1683,7 @@ void Titania_8018C8A8(Actor* actor) {
|
|||||||
actor->lockOnTimers[TEAM_ID_FOX] = 0;
|
actor->lockOnTimers[TEAM_ID_FOX] = 0;
|
||||||
actor->info.targetOffset = 0.0f;
|
actor->info.targetOffset = 0.0f;
|
||||||
}
|
}
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Titania_8018E2D8(Actor* actor) {
|
void Titania_8018E2D8(Actor* actor) {
|
||||||
@ -1874,8 +1875,8 @@ void Titania_8018E5F8(Actor* actor) {
|
|||||||
actor->fwork[3] = sp84.x;
|
actor->fwork[3] = sp84.x;
|
||||||
actor->fwork[4] = sp84.y;
|
actor->fwork[4] = sp84.y;
|
||||||
actor->fwork[5] = sp84.z;
|
actor->fwork[5] = sp84.z;
|
||||||
if (actor->dmgType > 0) {
|
if (actor->dmgType > DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->timer_0C6 = 10;
|
actor->timer_0C6 = 10;
|
||||||
if (actor->health > 0) {
|
if (actor->health > 0) {
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
@ -3160,7 +3161,7 @@ void Titania_80192118(Boss* boss) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (boss->dmgType != 0) {
|
if (boss->dmgType != DMG_NONE) {
|
||||||
D_i5_801BBEF0[48]++;
|
D_i5_801BBEF0[48]++;
|
||||||
}
|
}
|
||||||
if ((D_i5_801BBEF0[48] >= 3) || (boss->swork[31] >= 90)) {
|
if ((D_i5_801BBEF0[48] >= 3) || (boss->swork[31] >= 90)) {
|
||||||
@ -4729,7 +4730,7 @@ void Titania_80197A94(Boss* boss) {
|
|||||||
Vec3f sp3C;
|
Vec3f sp3C;
|
||||||
|
|
||||||
boss->swork[38]++;
|
boss->swork[38]++;
|
||||||
if ((boss->dmgType != 0) &&
|
if ((boss->dmgType != DMG_NONE) &&
|
||||||
(((boss->state >= 0) && (boss->state <= 1)) || ((boss->state >= 4) && (boss->state <= 6)))) {
|
(((boss->state >= 0) && (boss->state <= 1)) || ((boss->state >= 4) && (boss->state <= 6)))) {
|
||||||
AUDIO_PLAY_SFX(0x29121007, boss->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, boss->sfxSource, 4);
|
||||||
boss->dmgType = DMG_NONE;
|
boss->dmgType = DMG_NONE;
|
||||||
|
@ -324,7 +324,7 @@ void Andross_80188528(Actor* actor) {
|
|||||||
Math_SmoothStepToF(&actor->vel.x, 0.0f, 0.2f, 0.5f, 0.0f);
|
Math_SmoothStepToF(&actor->vel.x, 0.0f, 0.2f, 0.5f, 0.0f);
|
||||||
Math_SmoothStepToF(&actor->vel.y, 0.0f, 0.2f, 0.5f, 0.0f);
|
Math_SmoothStepToF(&actor->vel.y, 0.0f, 0.2f, 0.5f, 0.0f);
|
||||||
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.2f, 0.5f, 0.0f);
|
Math_SmoothStepToF(&actor->vel.z, 0.0f, 0.2f, 0.5f, 0.0f);
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
func_effect_8007A6F0(&actor->obj.pos, 0x2903A008);
|
||||||
Object_Kill(&actor->obj, actor->sfxSource);
|
Object_Kill(&actor->obj, actor->sfxSource);
|
||||||
func_effect_8007B344(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f, 5);
|
func_effect_8007B344(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 3.0f, 5);
|
||||||
@ -385,7 +385,7 @@ void Andross_801888F4(Actor* actor) {
|
|||||||
if ((actor->timer_0BC % 2U) == 1) {
|
if ((actor->timer_0BC % 2U) == 1) {
|
||||||
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
func_effect_8007D2C8(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
||||||
}
|
}
|
||||||
if ((actor->timer_0BC == 0) || (actor->dmgType != 0)) {
|
if ((actor->timer_0BC == 0) || (actor->dmgType != DMG_NONE)) {
|
||||||
func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y,
|
func_effect_8007BFFC(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, actor->vel.x, actor->vel.y,
|
||||||
actor->vel.z, 7.0f, 20);
|
actor->vel.z, 7.0f, 20);
|
||||||
func_effect_8007B344(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f, 5);
|
func_effect_8007B344(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 10.0f, 5);
|
||||||
@ -3242,8 +3242,8 @@ void Andross_80192E94(Actor* actor) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (actor->dmgType != 0) {
|
if (actor->dmgType != DMG_NONE) {
|
||||||
actor->dmgType = 0;
|
actor->dmgType = DMG_NONE;
|
||||||
actor->health -= actor->damage;
|
actor->health -= actor->damage;
|
||||||
if (actor->health <= 0) {
|
if (actor->health <= 0) {
|
||||||
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
func_effect_8007D0E0(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 5.0f);
|
||||||
|
@ -2680,9 +2680,9 @@ void SectorY_801A0AC0(Player* player) {
|
|||||||
|
|
||||||
for (i = 0; i < 10; i++) {
|
for (i = 0; i < 10; i++) {
|
||||||
if (gPlayerShots[i].obj.status == OBJ_FREE) {
|
if (gPlayerShots[i].obj.status == OBJ_FREE) {
|
||||||
func_enmy2_8006ECBC(PLAYERSHOT_1, &gPlayerShots[i], 100, gActors[8].obj.pos.x,
|
Actor_SetupPlayerShot(PLAYERSHOT_1, &gPlayerShots[i], CS_SHOT_ID, gActors[8].obj.pos.x,
|
||||||
gActors[8].obj.pos.y - 200.0f, sp80, sp98.x, sp98.y, sp98.z, sp88, sp84,
|
gActors[8].obj.pos.y - 200.0f, sp80, sp98.x, sp98.y, sp98.z, sp88, sp84,
|
||||||
0.0f);
|
0.0f);
|
||||||
gPlayerShots[i].unk_64 = 200;
|
gPlayerShots[i].unk_64 = 200;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -2795,9 +2795,9 @@ void SectorY_801A0AC0(Player* player) {
|
|||||||
|
|
||||||
for (i = 0; i < 11; i++) {
|
for (i = 0; i < 11; i++) {
|
||||||
if (gPlayerShots[i].obj.status == OBJ_FREE) {
|
if (gPlayerShots[i].obj.status == OBJ_FREE) {
|
||||||
func_enmy2_8006ECBC(PLAYERSHOT_1, &gPlayerShots[i], 100, gActors[8].obj.pos.x,
|
Actor_SetupPlayerShot(PLAYERSHOT_1, &gPlayerShots[i], CS_SHOT_ID, gActors[8].obj.pos.x,
|
||||||
gActors[8].obj.pos.y, gActors[8].obj.pos.z, sp98.x, sp98.y, sp98.z,
|
gActors[8].obj.pos.y, gActors[8].obj.pos.z, sp98.x, sp98.y, sp98.z,
|
||||||
sp88, sp84, 0.0f);
|
sp88, sp84, 0.0f);
|
||||||
gPlayerShots[i].unk_64 = 174;
|
gPlayerShots[i].unk_64 = 174;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -3716,12 +3716,12 @@ void SectorY_Actor204_Update(Actor204* this) {
|
|||||||
this->info.hitbox = SEGMENTED_TO_VIRTUAL(D_SY_60340C0);
|
this->info.hitbox = SEGMENTED_TO_VIRTUAL(D_SY_60340C0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((this->dmgType != 0) && (this->unk_046 != 3)) {
|
if ((this->dmgType != DMG_NONE) && (this->unk_046 != 3)) {
|
||||||
|
|
||||||
if (this->dmgType == 2) {
|
if (this->dmgType == DMG_EXPLOSION) {
|
||||||
this->dmgPart = 1;
|
this->dmgPart = 1;
|
||||||
}
|
}
|
||||||
this->dmgType = 0;
|
this->dmgType = DMG_NONE;
|
||||||
if (this->dmgPart == 0) {
|
if (this->dmgPart == 0) {
|
||||||
this->iwork[18] = 15;
|
this->iwork[18] = 15;
|
||||||
AUDIO_PLAY_SFX(0x29121007, this->sfxSource, 4);
|
AUDIO_PLAY_SFX(0x29121007, this->sfxSource, 4);
|
||||||
|
@ -51,7 +51,7 @@ void Turret_801A5560(Player* player, PlayerShot* shot, f32 xOffset, f32 yOffset,
|
|||||||
shot->unk_64 = 40;
|
shot->unk_64 = 40;
|
||||||
shot->scale = 1.5f;
|
shot->scale = 1.5f;
|
||||||
|
|
||||||
shot->playerNum = player->num;
|
shot->sourceId = player->num;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Turret_801A581C(Player* player, f32 xOffset) {
|
void Turret_801A581C(Player* player, f32 xOffset) {
|
||||||
|
@ -21,7 +21,7 @@ void Venom2_80196288(Boss* boss) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Venom2_801962F4(Actor* actor) {
|
void Venom2_801962F4(Actor* actor) {
|
||||||
func_360_8002F69C(actor);
|
ActorAllRange_UpdateStarWolfEvents(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Vec3f D_i6_801A68B0[6] = {
|
static Vec3f D_i6_801A68B0[6] = {
|
||||||
@ -52,10 +52,10 @@ void Venom2_UpdateEvents(Actor* this) {
|
|||||||
player->pos.x = 0.0f;
|
player->pos.x = 0.0f;
|
||||||
player->pos.z = 8000.0f;
|
player->pos.z = 8000.0f;
|
||||||
player->pos.y = 670.0f;
|
player->pos.y = 670.0f;
|
||||||
D_360_800C9B4C = 120;
|
gAllRangeSpawnEvent = 120;
|
||||||
gStarWolfMsgTimer = 1000;
|
gStarWolfMsgTimer = 1000;
|
||||||
} else {
|
} else {
|
||||||
D_360_800C9B4C = 320;
|
gAllRangeSpawnEvent = 320;
|
||||||
gStarWolfMsgTimer = 1200;
|
gStarWolfMsgTimer = 1200;
|
||||||
this->state = 1;
|
this->state = 1;
|
||||||
player->pos.x = 0.0f;
|
player->pos.x = 0.0f;
|
||||||
@ -95,7 +95,7 @@ void Venom2_UpdateEvents(Actor* this) {
|
|||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
Venom2_801962F4(this);
|
Venom2_801962F4(this);
|
||||||
if (((D_360_800C9B4C + 100) < gAllRangeEventTimer) && (gActors[4].obj.status == OBJ_FREE) &&
|
if (((gAllRangeSpawnEvent + 100) < gAllRangeEventTimer) && (gActors[4].obj.status == OBJ_FREE) &&
|
||||||
(gActors[5].obj.status == OBJ_FREE) && (gActors[6].obj.status == OBJ_FREE) &&
|
(gActors[5].obj.status == OBJ_FREE) && (gActors[6].obj.status == OBJ_FREE) &&
|
||||||
(gActors[7].obj.status == OBJ_FREE) && (this->timer_0BE == 0)) {
|
(gActors[7].obj.status == OBJ_FREE) && (this->timer_0BE == 0)) {
|
||||||
this->timer_0BE = 80;
|
this->timer_0BE = 80;
|
||||||
@ -130,7 +130,7 @@ void Venom2_UpdateEvents(Actor* this) {
|
|||||||
Math_SmoothStepToF(&player->cam.at.y, wolf->obj.pos.y, 1.0f, 20000.0f, 0.0f);
|
Math_SmoothStepToF(&player->cam.at.y, wolf->obj.pos.y, 1.0f, 20000.0f, 0.0f);
|
||||||
Math_SmoothStepToF(&player->cam.at.z, wolf->obj.pos.z, 1.0f, 20000.0f, 0.0f);
|
Math_SmoothStepToF(&player->cam.at.z, wolf->obj.pos.z, 1.0f, 20000.0f, 0.0f);
|
||||||
Math_SmoothStepToF(&player->camRoll, 0, 0.1f, 0.2f, 0.0f);
|
Math_SmoothStepToF(&player->camRoll, 0, 0.1f, 0.2f, 0.0f);
|
||||||
if ((gControllerPress->button & START_BUTTON) || (gAllRangeEventTimer == (D_360_800C9B4C + 300))) {
|
if ((gControllerPress->button & START_BUTTON) || (gAllRangeEventTimer == (gAllRangeSpawnEvent + 300))) {
|
||||||
this->state = 2;
|
this->state = 2;
|
||||||
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
player->state_1C8 = PLAYERSTATE_1C8_ACTIVE;
|
||||||
func_play_800B7184(player, 1);
|
func_play_800B7184(player, 1);
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit e6de326810c4f56810e98d4e2812995df29bfbb9
|
Subproject commit f24e7ec63b81bfe24e4daa795cc1e1d690e789cd
|
Loading…
Reference in New Issue
Block a user