WIP on script documentation, some cleanup (#194)

* gfx

* script

* Torch

* headers

* format
This commit is contained in:
petrie911 2024-04-01 17:04:22 -05:00 committed by GitHub
parent 1890dcda47
commit 2938919f6f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
42 changed files with 763 additions and 705 deletions

View File

@ -126,7 +126,11 @@
"ast_solar.h": "c",
"ast_ve1_boss.h": "c",
"ast_arwing.h": "c",
"ast_ending_award_back.h": "c"
"ast_ending_award_back.h": "c",
"fox_edisplay_assets.h": "c",
"ast_versus.h": "c",
"ast_macbeth.h": "c",
"ast_7_ti_1.h": "c"
},
"C_Cpp_Runner.msvcBatchPath": ""
}

View File

@ -9,7 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_ANDROSS_C000000:
{type: TEXTURE, ctype: u8, format: IA8, width: 96, height: 28, offset: 0xC000000, symbol: D_ANDROSS_C000000}

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_AQ_6000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 96, height: 13, offset: 0x6000000, symbol: D_AQ_6000000 }

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_A6_6000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 104, height: 28, offset: 0x6000000, symbol: D_A6_6000000 }

View File

@ -9,7 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
# Bolse Defense Outpost
D_BO_6000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 168, height: 19, offset: 0x6000000, symbol: D_BO_6000000 }

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
# Corneria
# Former Army Base

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_MA_6000000:
{type: TEXTURE, format: IA8, ctype: u8, width: 160, height: 28, offset: 0x6000000, symbol: D_MA_6000000}

View File

@ -9,7 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
# Meteo
# Asteroid Field
D_ME_6000000:

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_SX_6000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 176, height: 12, offset: 0x6000000, symbol: D_SX_6000000 }

View File

@ -9,6 +9,8 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
- '#include "sf64mesg.h"'
# Sector Y: Combat Zone
D_SY_6000000:

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
# Sector Z: Combat Zone
D_SZ_6000000:

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_SO_6000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 112, height: 13, offset: 0x6000000, symbol: D_SO_6000000}

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_TI_6000000:
{type: TEXTURE, format: IA8, ctype: u8, width: 96, height: 28, offset: 0x6000000, symbol: D_TI_6000000}

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_TR_6000000:
{ type: TEXTURE, format: IA8, offset: 0x6000000, width: 96, height: 12, ctype: u8, symbol: D_TR_6000000 }

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "sf64level.h"'
- '#include "structs.h"'
- '#include "sf64mesg.h"'
D_VE1_6000000:
{ type: TEXTURE, format: IA8, width: 96, height: 28, offset: 0x6000000, ctype: u8, symbol: D_VE1_6000000 }

View File

@ -9,6 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_versus_3000000:
{ type: TEXTURE, ctype: u8, format: CI4, width: 16, height: 16, offset: 0x3000000, symbol: D_versus_3000000, tlut: 0x3000080 }

View File

@ -9,7 +9,7 @@
- '#include "sf64object.h"'
- '#include "structs.h"'
- '#include "sf64level.h"'
- '#include "sf64mesg.h"'
D_ZO_6000000:
{ type: TEXTURE, ctype: u8, format: IA8, width: 112, height: 28, offset: 0x6000000, symbol: D_ZO_6000000}

View File

@ -13,4 +13,6 @@ f7475fb11e7e6830f82883412638e8390791ab87:
headers: include/assets
modding: src/assets
enums:
- include/sf64object.h
- include/sf64object.h
- include/sf64level.h
- include/sf64mesg.h

View File

@ -1,11 +0,0 @@
#ifndef AST_ENDING_EXPERT_H
#define AST_ENDING_EXPERT_H
#include "gfx.h"
#include "sf64object.h"
#include "structs.h"
extern u16 gEndingExpertReward[];
extern u16 gEndingNormalReward[];
#endif

View File

@ -487,12 +487,6 @@ s32 func_800A7974(Player* player, f32* hitboxData, s32* index, f32 xPos, f32 yPo
bool func_800A8054(ObjectId objId, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, Vec3f* arg7, Vec3f* arg8);
void Object_58_Initialize(Object_58*);
// fox_radio
s32 func_800BA7BC(u16*, s32);
void Radio_PlayMessage(u16*, RadioCharacterId);
void func_800BB388(void);
void func_800BB5D0(void);
// fox_versus
s32 func_800C1E9C(void);
void func_800C1ED4(void);

View File

@ -30,7 +30,7 @@
G_TX_RENDERTILE, 0, cmt, maskt, shiftt, cms, masks, shifts), \
gsDPSetTileSize(G_TX_RENDERTILE, dw, dh, \
((width)-1) << G_TEXTURE_IMAGE_FRAC, \
((height)-1) << G_TEXTURE_IMAGE_FRAC),
((height)-1) << G_TEXTURE_IMAGE_FRAC)
#define gDPLoadTileTexture(pkt, timg, fmt, siz, width, height) \
{ \
@ -54,7 +54,7 @@
gsDPLoadSync(), \
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, \
(((width)*(height) + siz##_INCR) >> siz##_SHIFT) -1, \
CALC_DXT(width, siz##_BYTES)),
CALC_DXT(width, siz##_BYTES))
#define gSPSetOtherModeHi(pkt, settings) gSPSetOtherMode(pkt, G_SETOTHERMODE_H, G_MDSFT_BLENDMASK, 24, settings)
#define gsSPSetOtherModeHi(settings) gsSPSetOtherMode(G_SETOTHERMODE_H, G_MDSFT_BLENDMASK, 24, settings)

View File

@ -7,9 +7,9 @@ extern int Dummyhalf;
// struct Dummy2 {int x;};
// struct Dummy3 {int x;};
// struct Dummy4 {int x;};
struct Dummy5 {int x;};
struct Dummy6 {int x;};
struct Dummy7 {int x;};
// struct Dummy5 {int x;};
// struct Dummy6 {int x;};
// struct Dummy7 {int x;};
struct Dummy8 {int x;};
struct Dummy9 {int x;};
struct Dummy10 {int x;};

View File

@ -115,4 +115,149 @@ typedef enum VsStage {
/* 2 */ VS_STAGE_SECTOR_Z,
} VsStage;
#define EVENT_CMD(opcode, arg1, arg2) ((((opcode) & 0x7F) << 9) | ((arg1) & 0x1FF)), (arg2)
#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(health, info) EVENT_CMD(EVOP_INIT_ACTOR, health, info)
#define EVENT_SET_SPEED(speed, time, flag1, flag2) EVENT_CMD(EVOP_SET_SPEED, (((flag1) & 1) << 8) | (((flag2) & 1) << 7) | ((speed) & 0x7F), time)
#define EVENT_SET_ACCEL(speedTarget, time, flag1, flag2) EVENT_CMD(EVOP_SET_ACCEL, (((flag1) & 1) << 8) | (((flag2) & 1) << 7) | ((speedTarget) & 0x7F), time)
#define EVENT_SET_ROTATE() EVENT_CMD(EVOP_SET_ROTATE, 0, 0)
#define EVENT_STOP_ROTATE() EVENT_CMD(EVOP_STOP_ROTATE, 0, 0)
#define EVENT_BRANCH(cond, cmd) EVENT_CMD(EVOP_BRANCH, cmd, cond)
#define EVENT_LOOP(cmd, count) EVENT_CMD(EVOP_LOOP, cmd, count)
typedef enum EventOpcode {
/* 0 */ EVOP_SET_SPEED,
/* 1 */ EVOP_SET_ACCEL,
/* 2 */ EVOP_2,
/* 3 */ EVOP_3,
/* 4 */ EVOP_4,
/* 8 */ EVOP_8 = 8,
/* 9 */ EVOP_9,
/* 10 */ EVOP_10,
/* 11 */ EVOP_11,
/* 12 */ EVOP_12,
/* 16 */ EVOP_16 = 16,
/* 17 */ EVOP_17,
/* 18 */ EVOP_18,
/* 19 */ EVOP_19,
/* 20 */ EVOP_20,
/* 21 */ EVOP_21,
/* 24 */ EVOP_SET_ROTATE = 24,
/* 25 */ EVOP_STOP_ROTATE,
/* 40 */ EVOP_40 = 40,
/* 41 */ EVOP_41,
/* 42 */ EVOP_42,
/* 43 */ EVOP_43,
/* 44 */ EVOP_44,
/* 45 */ EVOP_45,
/* 46 */ EVOP_46,
/* 47 */ EVOP_47,
/* 48 */ EVOP_48,
/* 56 */ EVOP_56 = 56,
/* 57 */ EVOP_57,
/* 58 */ EVOP_58,
/* 59 */ EVOP_59,
/* 96 */ EVOP_BRANCH = 96,
/* 104 */ EVOP_INIT_ACTOR = 104,
/* 105 */ EVOP_105,
/* 112 */ EVOP_112 = 112,
/* 113 */ EVOP_113,
/* 116 */ EVOP_116 = 116,
/* 118 */ EVOP_118 = 118,
/* 119 */ EVOP_119,
/* 120 */ EVOP_PLAY_MSG, // play message. arg1 is portrait, arg2 is message ID
/* 121 */ EVOP_121,
/* 122 */ EVOP_122,
/* 124 */ EVOP_MAKE_TEXLINE = 124,
/* 125 */ EVOP_STOP_TEXLINE,
/* 126 */ EVOP_LOOP,
/* 127 */ EVOP_STOP_SCRIPT, // stop script
} EventOpcode;
typedef enum EventCondition {
/* 0 */ EVC_0,
/* 1 */ EVC_1,
/* 2 */ EVC_2,
/* 3 */ EVC_3,
/* 4 */ EVC_4,
/* 5 */ EVC_5,
/* 6 */ EVC_6,
/* 7 */ EVC_7,
/* 8 */ EVC_8,
/* 9 */ EVC_9,
/* 10 */ EVC_10,
/* 11 */ EVC_11,
/* 12 */ EVC_12,
/* 13 */ EVC_13,
/* 14 */ EVC_14,
/* 15 */ EVC_15,
/* 16 */ EVC_16,
/* 17 */ EVC_17,
/* 18 */ EVC_18,
/* 19 */ EVC_19,
/* 20 */ EVC_20,
/* 21 */ EVC_21,
/* 22 */ EVC_22,
/* 23 */ EVC_23,
/* 24 */ EVC_24,
/* 25 */ EVC_25,
/* 26 */ EVC_26,
/* 27 */ EVC_27,
/* 28 */ EVC_28,
/* 29 */ EVC_29,
/* 30 */ EVC_30,
/* 31 */ EVC_31,
/* 32 */ EVC_32,
/* 33 */ EVC_33,
/* 34 */ EVC_34,
/* 35 */ EVC_35,
/* 36 */ EVC_36,
/* 37 */ EVC_37,
/* 38 */ EVC_38,
/* 39 */ EVC_39,
/* 40 */ EVC_40,
/* 41 */ EVC_41,
/* 42 */ EVC_42,
/* 43 */ EVC_43,
/* 44 */ EVC_44,
/* 45 */ EVC_45,
/* 46 */ EVC_46,
/* 47 */ EVC_47,
/* 48 */ EVC_48,
/* 49 */ EVC_49,
/* 50 */ EVC_50,
/* 51 */ EVC_51,
/* 52 */ EVC_52,
/* 53 */ EVC_53,
/* 54 */ EVC_54,
/* 55 */ EVC_55,
/* 56 */ EVC_56,
/* 57 */ EVC_57,
/* 58 */ EVC_58,
/* 59 */ EVC_59,
/* 60 */ EVC_60,
/* 61 */ EVC_61,
/* 62 */ EVC_62,
/* 63 */ EVC_63,
/* 64 */ EVC_64,
/* 65 */ EVC_65,
/* 66 */ EVC_66,
/* 67 */ EVC_67,
/* 68 */ EVC_68,
/* 69 */ EVC_69,
/* 100 */ EVC_100=100,
} EventCondition;
typedef enum TexLineColor {
/* 0 */ TXLC_WHITE,
/* 1 */ TXLC_LIGHT_BLUE,
/* 2 */ TXLC_BLUE,
/* 3 */ TXLC_GREEN,
/* 4 */ TXLC_RED,
/* 5 */ TXLC_YELLOW,
} TexLineColor;
#endif

View File

@ -18,7 +18,7 @@ bool Message_DisplayText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 len)
void Message_DisplayScrollingText(Gfx** gfxPtr, u16* msgPtr, s32 xPos, s32 yPos, s32 yRangeHi, s32 yRangeLo, s32 len);
bool Message_IsPrintingChar(u16* msgPtr, s32 charPos);
typedef enum {
typedef enum RadioCharacterId {
RCID_FOX = 0,
RCID_FOX_OPEN,
RCID_FOX_RED = 5,
@ -99,6 +99,10 @@ typedef enum {
RCID_FOX_EXPERT_OPEN,
} RadioCharacterId;
void Radio_PlayMessage(u16*, enum RadioCharacterId);
void func_800BB388(void);
void func_800BB5D0(void);
typedef enum {
MSGCHAR_END,
MSGCHAR_NWL,

View File

@ -85,17 +85,17 @@ typedef struct {
} ObjectInit; // size = 0x14
typedef struct {
/* 0x00 */ Gfx* unk_00;
/* 0x04 */ f32* unk_04;
/* 0x08 */ f32 unk_08;
/* 0x0C */ f32 unk_0C;
/* 0x00 */ Gfx* dList;
/* 0x04 */ f32* hitbox;
/* 0x08 */ f32 scale;
/* 0x0C */ f32 info_unk_10;
/* 0x10 */ f32 unk_10;
/* 0x14 */ u8 unk_14;
/* 0x15 */ u8 unk_15;
/* 0x16 */ u8 unk_16;
/* 0x17 */ u8 unk_17;
/* 0x18 */ f32 unk_18;
/* 0x1C */ u8 unk_1C;
/* 0x14 */ u8 info_unk_16;
/* 0x15 */ u8 info_unk_14;
/* 0x16 */ u8 sfx;
/* 0x17 */ u8 info_unk_19;
/* 0x18 */ f32 info_unk_1C;
/* 0x1C */ u8 bonus;
} UnkStruct_D003C; // size = 0x20
typedef enum ObjectStatus {
@ -275,8 +275,8 @@ typedef struct {
/* 0x0D4 */ s16 unk_0D4;
/* 0x0D6 */ u16 damage;
/* 0x0D8 */ Vec3f unk_0D8;
/* 0x0E4 */ s16 unk_0E4;
/* 0x0E6 */ s16 unk_0E6;
/* 0x0E4 */ s16 aiType;
/* 0x0E6 */ s16 aiIndex;
/* 0x0E8 */ Vec3f vel;
/* 0x0F4 */ Vec3f unk_0F4;
/* 0x100 */ f32 sfxSource[3];
@ -286,57 +286,6 @@ typedef struct {
/* 0x18C */ Vec3f vwork[30];
} Actor; // size = 0x2F4
#define EVENT_CMD(opcode, arg1, arg2) ((((opcode) & 0x7F) << 9) | ((arg1) & 0x1FF)), (arg2)
typedef enum EventOpcode {
/* 0 */ EVOP_0,
/* 1 */ EVOP_1,
/* 2 */ EVOP_2,
/* 3 */ EVOP_3,
/* 4 */ EVOP_4,
/* 8 */ EVOP_8 = 8,
/* 9 */ EVOP_9,
/* 10 */ EVOP_10,
/* 11 */ EVOP_11,
/* 12 */ EVOP_12,
/* 16 */ EVOP_16 = 16,
/* 17 */ EVOP_17,
/* 18 */ EVOP_18,
/* 19 */ EVOP_19,
/* 20 */ EVOP_20,
/* 21 */ EVOP_21,
/* 24 */ EVOP_24 = 24,
/* 25 */ EVOP_25,
/* 40 */ EVOP_40 = 40,
/* 41 */ EVOP_41,
/* 42 */ EVOP_42,
/* 43 */ EVOP_43,
/* 44 */ EVOP_44,
/* 45 */ EVOP_45,
/* 46 */ EVOP_46,
/* 47 */ EVOP_47,
/* 48 */ EVOP_48,
/* 56 */ EVOP_56 = 56,
/* 57 */ EVOP_57,
/* 58 */ EVOP_58,
/* 59 */ EVOP_59,
/* 96 */ EVOP_96 = 96,
/* 104 */ EVOP_104 = 104,
/* 105 */ EVOP_105,
/* 112 */ EVOP_112 = 112,
/* 113 */ EVOP_113,
/* 116 */ EVOP_116 = 116,
/* 118 */ EVOP_118 = 118,
/* 119 */ EVOP_119,
/* 120 */ EVOP_120, // play message. arg1 is portrait, arg2 is message ID
/* 121 */ EVOP_121,
/* 122 */ EVOP_122,
/* 124 */ EVOP_124 = 124,
/* 125 */ EVOP_125,
/* 126 */ EVOP_126,
/* 127 */ EVOP_127, // stop script
} EventOpcode;
typedef enum ObjectId {
/* -1 */ OBJ_INVALID=-1,
/* 0 */ OBJ_80_0,

View File

@ -368,20 +368,20 @@ void func_8002F180(void) {
actor->obj.id = OBJ_ACTOR_197;
Object_SetInfo(&actor->info, actor->obj.id);
if (i == 0) {
actor->unk_0E4 = 1000;
actor->aiType = 1000;
} else {
actor->obj.pos.x = D_800C9A9C[i].x;
actor->obj.pos.y = D_800C9A9C[i].y;
actor->obj.pos.z = D_800C9A9C[i].z;
actor->unk_0E4 = D_800C9ACC[i];
actor->aiType = D_800C9ACC[i];
if (gCurrentLevel == LEVEL_KATINA) {
actor->unk_0E6 = D_800C9AEC[i];
actor->aiIndex = D_800C9AEC[i];
} else {
actor->unk_0E6 = D_800C9ADC[i];
actor->aiIndex = D_800C9ADC[i];
}
actor->state = 2;
actor->unk_0F4.y = 180.0f;
if (actor->unk_0E6 < 0) {
if (actor->aiIndex < 0) {
actor->state = 3;
}
actor->health = 50;
@ -389,7 +389,7 @@ void func_8002F180(void) {
actor->unk_0C9 = 1;
}
actor->iwork[11] = 1;
if (actor->unk_0E4 < 4) {
if (actor->aiType < 4) {
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
actor->info.hitbox = SEGMENTED_TO_VIRTUAL(D_800CC01C);
actor->info.unk_1C = 0.0f;
@ -413,9 +413,9 @@ void func_8002F3E0(void) {
actor->obj.pos.y = D_800C9AFC[i].y;
actor->obj.pos.z = D_800C9AFC[i].z;
actor->obj.id = OBJ_ACTOR_197;
actor->unk_0E4 = i + 4;
actor->unk_0E6 = D_800C9B2C[i];
gActors[actor->unk_0E6].unk_0E6 = -1;
actor->aiType = i + 4;
actor->aiIndex = D_800C9B2C[i];
gActors[actor->aiIndex].aiIndex = -1;
actor->health = 100;
actor->unk_0C9 = 1;
actor->unk_0F4.y = 225.0f;
@ -492,16 +492,16 @@ void func_8002F69C(Actor* actor) {
for (i = 1, otherActor = &gActors[1]; i < 8; i++, otherActor++) {
if ((otherActor->obj.status == OBJ_ACTIVE) && (otherActor->state == 2) && (otherActor->health < 70) &&
(otherActor->timer_0C6 != 0) && (otherActor->unk_0D4 == 1)) {
if ((gActors[otherActor->unk_0E6].state == 3) && (gActors[otherActor->unk_0E6].unk_0E4 < 8)) {
gActors[otherActor->unk_0E6].iwork[2] = 0;
gActors[otherActor->unk_0E6].state = 2;
gActors[otherActor->unk_0E6].unk_0E6 = otherActor->unk_0E4;
if (D_800CA234 == &gActors[otherActor->unk_0E6]) {
if ((gActors[otherActor->aiIndex].state == 3) && (gActors[otherActor->aiIndex].aiType < 8)) {
gActors[otherActor->aiIndex].iwork[2] = 0;
gActors[otherActor->aiIndex].state = 2;
gActors[otherActor->aiIndex].aiIndex = otherActor->aiType;
if (D_800CA234 == &gActors[otherActor->aiIndex]) {
D_800CA234 = NULL;
D_Timer_800CA238 = 0;
}
if (gActors[otherActor->unk_0E6].iwork[3] == 0) {
switch (gActors[otherActor->unk_0E6].unk_0E4) {
if (gActors[otherActor->aiIndex].iwork[3] == 0) {
switch (gActors[otherActor->aiIndex].aiType) {
case 1:
func_8002F5F4(gMsg_ID_9160, RCID_FALCO);
break;
@ -512,28 +512,28 @@ void func_8002F69C(Actor* actor) {
func_8002F5F4(gMsg_ID_9180, RCID_PEPPY);
break;
}
gActors[otherActor->unk_0E6].iwork[3] = 200;
gActors[otherActor->aiIndex].iwork[3] = 200;
}
}
if (otherActor->unk_0E4 == 4) {
if (otherActor->aiType == 4) {
if (gCurrentLevel != LEVEL_VENOM_2) {
otherActor->state = 3;
otherActor->unk_04E = 300;
}
} else {
otherActor->state = 3;
otherActor->unk_0E6 = -1;
otherActor->aiIndex = -1;
}
}
}
if (gTeamShields[1] <= 0) {
gActors[5].unk_0E6 = 0;
gActors[5].aiIndex = 0;
}
if (gTeamShields[2] <= 0) {
gActors[7].unk_0E6 = 0;
gActors[7].aiIndex = 0;
}
if (gTeamShields[3] <= 0) {
gActors[6].unk_0E6 = 0;
gActors[6].aiIndex = 0;
}
}
}
@ -548,15 +548,15 @@ void func_8002FB4C(Actor* actor) {
for (i = 10, actor1 = &gActors[10]; i < 60; i++, actor1++) {
if ((actor1->obj.status == OBJ_ACTIVE) && (actor1->obj.id == OBJ_ACTOR_197) && (actor1->unk_0B6 == 0) &&
(actor1->unk_0E6 < 0)) {
(actor1->aiIndex < 0)) {
var_a0 = false;
for (j = 1, actor2 = &gActors[1]; j < 4; j++, actor2++) {
if ((j != actor->index) && (i == actor2->unk_0E6)) {
if ((j != actor->index) && (i == actor2->aiIndex)) {
var_a0 = true;
}
}
if (!var_a0) {
actor->unk_0E6 = i;
actor->aiIndex = i;
actor->state = 2;
actor->iwork[2] = 0;
break;
@ -570,25 +570,25 @@ void func_8002FC00(Actor* actor) {
s32 i;
for (i = 0, otherActor = &gActors[10]; i < 50; i++, otherActor++) {
if ((otherActor->obj.status == OBJ_DYING) && (otherActor->unk_0E6 > 0) && (otherActor->unk_0E6 < 4)) {
if ((otherActor->obj.status == OBJ_DYING) && (otherActor->aiIndex > 0) && (otherActor->aiIndex < 4)) {
Actor* actor2;
s32 j;
for (j = 0, actor2 = &gActors[10]; j < 51; j++, actor2++) {
if ((actor2->obj.status == OBJ_ACTIVE) && (actor2->state == 2) &&
(actor2->unk_0E6 == otherActor->unk_0E6)) {
(actor2->aiIndex == otherActor->aiIndex)) {
return;
}
}
if (gTeamShields[otherActor->unk_0E6] > 0) {
func_8002FB4C(&gActors[otherActor->unk_0E6]);
if (gTeamShields[otherActor->aiIndex] > 0) {
func_8002FB4C(&gActors[otherActor->aiIndex]);
if ((otherActor->iwork[5] != 0) && (otherActor->unk_0D4 == 1) &&
(gActors[otherActor->unk_0E6].iwork[3] == 0)) {
if (D_800CA234 == &gActors[otherActor->unk_0E6]) {
(gActors[otherActor->aiIndex].iwork[3] == 0)) {
if (D_800CA234 == &gActors[otherActor->aiIndex]) {
D_800CA234 = NULL;
D_Timer_800CA238 = 0;
}
switch (gActors[otherActor->unk_0E6].unk_0E4) {
switch (gActors[otherActor->aiIndex].aiType) {
case 1:
func_8002F5F4(gMsg_ID_9160, RCID_FALCO);
break;
@ -599,8 +599,8 @@ void func_8002FC00(Actor* actor) {
func_8002F5F4(gMsg_ID_9180, RCID_PEPPY);
break;
}
gActors[otherActor->unk_0E6].iwork[3] = 200;
gActors[otherActor->unk_0E6].timer_0C4 = 600;
gActors[otherActor->aiIndex].iwork[3] = 200;
gActors[otherActor->aiIndex].timer_0C4 = 600;
}
}
}
@ -768,7 +768,7 @@ s32 func_8003049C(Actor* actor) {
}
sp44 = 1200.0f;
var_ft5 = 650.0f;
if (actor->unk_0E4 < 8) {
if (actor->aiType < 8) {
var_ft5 = 720.0f;
}
@ -795,14 +795,14 @@ void func_8003088C(Actor* actor) {
Vec3f sp3C;
if (actor->unk_0D0 != 0) {
if (actor->unk_0E4 == 100) {
if (actor->aiType == 100) {
actor->unk_0D0 = 0;
}
if ((actor->unk_0D0 >= 2) && (actor->unk_0E4 >= 4) && (actor->unk_0E4 < 8)) {
if ((actor->unk_0D0 >= 2) && (actor->aiType >= 4) && (actor->aiType < 8)) {
actor->damage = 10;
actor->timer_0C2 = 10;
}
if (((actor->unk_0E4 < 4) || (actor->unk_0E4 == 9) || (actor->unk_0E4 == 8)) && (actor->unk_0D0 == 2)) {
if (((actor->aiType < 4) || (actor->aiType == 9) || (actor->aiType == 8)) && (actor->unk_0D0 == 2)) {
actor->unk_0D0 = 0;
}
if ((actor->unk_0D0 == 2) && (actor->fwork[22] > 0.0f)) {
@ -814,8 +814,8 @@ void func_8003088C(Actor* actor) {
if (actor->unk_0D0 != 0) {
var_a1 = false;
if ((actor->unk_0B6 == 3) ||
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != OBJ_FREE) && (actor->unk_0E4 >= 4)) ||
((gCurrentLevel == LEVEL_VENOM_2) && (actor->unk_0E4 >= 4) && (actor->unk_0E4 < 10) &&
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != OBJ_FREE) && (actor->aiType >= 4)) ||
((gCurrentLevel == LEVEL_VENOM_2) && (actor->aiType >= 4) && (actor->aiType < 10) &&
(actor->unk_0D0 == 2))) {
actor->damage = 0;
var_a1 = true;
@ -823,21 +823,21 @@ void func_8003088C(Actor* actor) {
actor->unk_0D4 = 0;
}
}
if (actor->unk_0E4 >= 4) {
if (((actor->unk_0D0 != 3) || (actor->unk_0E4 != 4)) &&
((actor->unk_0E4 != 200) || (actor->unk_0D0 != 2))) {
if (actor->aiType >= 4) {
if (((actor->unk_0D0 != 3) || (actor->aiType != 4)) &&
((actor->aiType != 200) || (actor->unk_0D0 != 2))) {
actor->health -= actor->damage;
}
} else if ((actor->unk_0E4 < 4) && (actor->state != 6)) {
if (actor->unk_0E4 == 1) {
gTeamDamage[actor->unk_0E4] = actor->damage;
} else if ((actor->aiType < 4) && (actor->state != 6)) {
if (actor->aiType == 1) {
gTeamDamage[actor->aiType] = actor->damage;
} else {
gTeamDamage[actor->unk_0E4] = actor->damage * 2;
gTeamDamage[actor->aiType] = actor->damage * 2;
}
}
if (actor->health <= 0) {
actor->health = 0;
if (actor->unk_0E4 == 200) {
if (actor->aiType == 200) {
func_i4_80199900(actor, 1);
if (actor->unk_0D4 == 1) {
if (gActors[8].obj.status == OBJ_ACTIVE) {
@ -897,7 +897,7 @@ void func_8003088C(Actor* actor) {
actor->timer_0BC = RAND_INT(50.0f);
}
}
if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 8)) {
if ((actor->aiType >= 4) && (actor->aiType < 8)) {
actor->timer_0BC = RAND_INT(40.0f) + 60.0f;
}
if (actor->damage >= 20) {
@ -909,7 +909,7 @@ void func_8003088C(Actor* actor) {
}
D_8015F921++;
}
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 4:
D_80177CD0[0] = 0;
if (gCurrentLevel == LEVEL_VENOM_2) {
@ -943,12 +943,12 @@ void func_8003088C(Actor* actor) {
}
break;
}
if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 8)) {
if ((actor->aiType >= 4) && (actor->aiType < 8)) {
D_8015F904 = 150;
}
switch (actor->unk_0D4) {
case 1:
if (actor->unk_0E4 >= 10) {
if (actor->aiType >= 10) {
switch (actor->iwork[2]) {
case 1:
func_8002F5F4(gMsg_ID_20170, RCID_FALCO);
@ -965,7 +965,7 @@ void func_8003088C(Actor* actor) {
case 102:
case 103:
case 104:
if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 8)) {
if ((actor->aiType >= 4) && (actor->aiType < 8)) {
if ((D_80177CD0[0] + D_80177CD0[1] + D_80177CD0[2] + D_80177CD0[3]) == 0) {
switch (actor->unk_0D4) {
case 102:
@ -1003,13 +1003,13 @@ void func_8003088C(Actor* actor) {
actor->timer_0C6 = 20;
actor->iwork[8] = 20;
}
if (actor->unk_0E4 == 200) {
if (actor->aiType == 200) {
AUDIO_PLAY_SFX(0x29034003, actor->sfxSource, 4);
} else if (actor->iwork[7] == 0) {
AUDIO_PLAY_SFX(0x2903300E, actor->sfxSource, 4);
}
func_8007D10C(actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1.5f);
if (actor->unk_0E4 < 100) {
if (actor->aiType < 100) {
Matrix_RotateY(gCalcMatrix, actor->unk_0F4.y * M_DTOR, 0);
sp48.x = 30.0f;
if (Rand_ZeroOne() < 0.5f) {
@ -1032,7 +1032,7 @@ void func_8003088C(Actor* actor) {
}
if ((gRadioState == 0) && (gActors[0].obj.status == OBJ_ACTIVE)) {
if (actor->unk_0D0 == 3) {
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 1:
func_8002F5F4(gMsg_ID_20210, RCID_FALCO);
break;
@ -1047,17 +1047,17 @@ void func_8003088C(Actor* actor) {
break;
}
} else if (actor->unk_0D4 < 105) {
if (actor->unk_0E4 >= 4) {
if (actor->aiType >= 4) {
if (actor->unk_0D4 == 1) {
if ((gCurrentLevel == LEVEL_KATINA) && (actor->unk_0B6 == 1) && (D_8015F920 == 0)) {
D_8015F920 = 1;
Radio_PlayMessage(gMsg_ID_18015, RCID_BILL);
} else if (actor->unk_0E4 == 8) {
} else if (actor->aiType == 8) {
func_8002F5F4(gMsg_ID_20084, RCID_KATT);
} else if (actor->unk_0E4 == 9) {
} else if (actor->aiType == 9) {
func_8002F5F4(gMsg_ID_20085, RCID_BILL);
} else if (gCurrentLevel == LEVEL_VENOM_2) {
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 4:
func_8002F5F4(gMsg_ID_19454, RCID_WOLF);
break;
@ -1074,7 +1074,7 @@ void func_8003088C(Actor* actor) {
}
}
} else if (actor->unk_0D4 == 1) {
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 1:
func_8002F5F4(gMsg_ID_20060, RCID_FALCO);
break;
@ -1086,15 +1086,15 @@ void func_8003088C(Actor* actor) {
break;
}
}
} else if ((actor->unk_0E4 < 4) && (actor->iwork[6] != 0) && (actor->iwork[2] != 0)) {
switch (actor->unk_0E4) {
} else if ((actor->aiType < 4) && (actor->iwork[6] != 0) && (actor->iwork[2] != 0)) {
switch (actor->aiType) {
case 1:
if (gTeamShields[1] >= 90) {
func_8002F5F4(gMsg_ID_9130, RCID_FALCO);
} else {
Radio_PlayMessage(gMsg_ID_9151, RCID_FALCO);
}
if ((D_800CA234 == NULL) || (gTeamShields[actor->unk_0E4] <= 50)) {
if ((D_800CA234 == NULL) || (gTeamShields[actor->aiType] <= 50)) {
D_800CA234 = actor;
D_Timer_800CA238 = 320;
}
@ -1105,7 +1105,7 @@ void func_8003088C(Actor* actor) {
} else {
Radio_PlayMessage(gMsg_ID_9152, RCID_SLIPPY);
}
if ((D_800CA234 == NULL) || (gTeamShields[actor->unk_0E4] <= 50)) {
if ((D_800CA234 == NULL) || (gTeamShields[actor->aiType] <= 50)) {
D_800CA234 = actor;
D_Timer_800CA238 = 320;
}
@ -1116,7 +1116,7 @@ void func_8003088C(Actor* actor) {
} else {
Radio_PlayMessage(gMsg_ID_9153, RCID_PEPPY);
}
if ((D_800CA234 == NULL) || (gTeamShields[actor->unk_0E4] <= 50)) {
if ((D_800CA234 == NULL) || (gTeamShields[actor->aiType] <= 50)) {
D_800CA234 = actor;
D_Timer_800CA238 = 320;
}
@ -1189,13 +1189,13 @@ void func_800319AC(Actor* this) {
s32 pad2;
s32 pad3;
if (this->unk_0E4 == 1000) {
if (this->aiType == 1000) {
this->timer_0C2 = 10;
this->info.unk_1C = 0.0f;
func_8003010C(this);
return;
}
if ((this->iwork[17] != 0) && (this->iwork[16] == 0) && (this->unk_0E4 >= 4)) {
if ((this->iwork[17] != 0) && (this->iwork[16] == 0) && (this->aiType >= 4)) {
switch (RAND_INT(3.9f)) {
case 0:
case 1:
@ -1216,7 +1216,7 @@ void func_800319AC(Actor* this) {
this->iwork[16] = 0;
}
}
if ((this->timer_0CA[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->unk_0E4 < 10) &&
if ((this->timer_0CA[0] != 0) && (gCurrentLevel != LEVEL_VENOM_2) && (this->aiType < 10) &&
(this->timer_0CA[0] < 5) && !(gGameFrameCount & 0x1F)) {
this->iwork[16] = 10;
}
@ -1275,10 +1275,10 @@ void func_800319AC(Actor* this) {
} else {
this->iwork[11] = 1;
}
if (this->unk_0E4 < 10) {
if (this->aiType < 10) {
func_80031858(this);
if (this->iwork[10] == 200) {
switch (this->unk_0E4) {
switch (this->aiType) {
case 4:
case 5:
case 6:
@ -1320,11 +1320,11 @@ void func_800319AC(Actor* this) {
}
sp104 = 0;
this->iwork[5] = 0;
if ((this->unk_0E4 > 0) && (this->unk_0E4 < 4) && (gTeamShields[this->unk_0E4] <= 0) && (this->state != 6)) {
if ((this->aiType > 0) && (this->aiType < 4) && (gTeamShields[this->aiType] <= 0) && (this->state != 6)) {
this->state = 6;
if (this->timer_0C2 < 100) {
gTeamShields[this->unk_0E4] = 1;
switch (this->unk_0E4) {
gTeamShields[this->aiType] = 1;
switch (this->aiType) {
case 1:
Radio_PlayMessage(gMsg_ID_20220, RCID_FALCO);
break;
@ -1341,8 +1341,8 @@ void func_800319AC(Actor* this) {
AUDIO_PLAY_SFX(0x09000002, this->sfxSource, 0);
this->unk_046 = 0;
}
gTeamShields[this->unk_0E4] = -1;
gTeamDamage[this->unk_0E4] = 0;
gTeamShields[this->aiType] = -1;
gTeamDamage[this->aiType] = 0;
this->iwork[1] = 0;
this->timer_0C2 = 10000;
}
@ -1352,8 +1352,8 @@ void func_800319AC(Actor* this) {
this->iwork[11] = 2;
this->fwork[1] = 45.0f;
this->fwork[3] = 2.0f;
gTeamShields[this->unk_0E4] = -1;
gTeamDamage[this->unk_0E4] = 0;
gTeamShields[this->aiType] = -1;
gTeamDamage[this->aiType] = 0;
if (gCurrentLevel == LEVEL_SECTOR_Z) {
this->fwork[4] = D_800C9B50[this->unk_046].x;
this->fwork[5] = D_800C9B50[this->unk_046].y;
@ -1385,7 +1385,7 @@ void func_800319AC(Actor* this) {
this->fwork[1] = 200.0f;
}
if (this->timer_0BC == 0) {
if (this->unk_0E4 == 4) {
if (this->aiType == 4) {
this->state = 3;
if (gCurrentLevel == LEVEL_VENOM_2) {
this->unk_04E = 200;
@ -1394,7 +1394,7 @@ void func_800319AC(Actor* this) {
}
} else {
this->state = 2;
if (this->unk_0E4 == 8) {
if (this->aiType == 8) {
this->fwork[7] = 360.0f;
this->fwork[8] = 0.0f;
}
@ -1410,7 +1410,7 @@ void func_800319AC(Actor* this) {
}
if (this->timer_0BC == 0) {
this->state = 3;
if ((gCurrentLevel == LEVEL_BOLSE) && (this->unk_0E6 >= 0)) {
if ((gCurrentLevel == LEVEL_BOLSE) && (this->aiIndex >= 0)) {
this->state = 2;
}
}
@ -1423,30 +1423,30 @@ void func_800319AC(Actor* this) {
spEC = fabsf(this->fwork[4] - this->obj.pos.x);
spE8 = fabsf(this->fwork[6] - this->obj.pos.z);
sp10F = 0xB;
if (this->unk_0E4 == 1) {
if (this->aiType == 1) {
spF0 = 0.5f;
} else if ((this->unk_0B6 != 2) && (this->unk_0B6 == 3)) {
spF0 = 0.5f;
}
if (this->unk_0E6 == 0) {
if (this->aiIndex == 0) {
spF0 = 0.2f;
}
if (this->unk_0E6 < 0) {
if (this->aiIndex < 0) {
this->state = 3;
} else {
if (gActors[this->unk_0E6].unk_0E4 == 200) {
if (gActors[this->aiIndex].aiType == 200) {
spF0 = 0.8f;
spF4 = spF8 = 3000.0f;
this->fwork[3] = 2.0f;
}
if (this->unk_0E6 == 0) {
if (this->aiIndex == 0) {
if (gCurrentLevel != LEVEL_VENOM_2) {
if (((gPlayer[0].unk_4DC != 0) && (this->iwork[4] > 10)) ||
((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0))) {
this->state = 3;
this->unk_04E = 300;
this->timer_0BC = 160;
if (this->unk_0E4 == 4) {
if (this->aiType == 4) {
func_8002F5F4(gMsg_ID_9369, RCID_WOLF);
}
break;
@ -1455,8 +1455,8 @@ void func_800319AC(Actor* this) {
break;
}
}
if ((this->unk_0E4 >= 4) && (this->unk_0E4 != 8) &&
((gCurrentLevel != LEVEL_VENOM_2) || (this->unk_0E4 != 4))) {
if ((this->aiType >= 4) && (this->aiType != 8) &&
((gCurrentLevel != LEVEL_VENOM_2) || (this->aiType != 4))) {
spCC = SIN_DEG((this->index * 45) + gGameFrameCount) * 100.0f;
spC8 = COS_DEG((this->index * 45) + (gGameFrameCount * 2)) * 100.0f;
spC4 = SIN_DEG((this->index * 45) + gGameFrameCount) * 100.0f;
@ -1467,11 +1467,11 @@ void func_800319AC(Actor* this) {
this->fwork[6] = gPlayer[0].unk_138 + spC4;
this->fwork[1] = gPlayer[0].unk_0D0 + 10.0f;
}
if ((gActors[0].state == 6) && (this->unk_0E4 < 4)) {
if ((gActors[0].state == 6) && (this->aiType < 4)) {
this->fwork[3] = 3.0f;
this->fwork[1] = gPlayer[0].unk_0D0 - 5.0f;
this->iwork[11] = 2;
} else if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) {
} else if ((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= 4)) {
this->fwork[3] = 1.6f;
this->fwork[1] = 55.0f;
} else {
@ -1485,23 +1485,23 @@ void func_800319AC(Actor* this) {
} else {
spF0 = 0.7f;
}
} else if (this->unk_0E6 != 100) {
if (this->unk_0E4 >= 10) {
} else if (this->aiIndex != 100) {
if (this->aiType >= 10) {
spCC = SIN_DEG((this->index * 45) + gGameFrameCount) * 200.0f;
spC8 = COS_DEG((this->index * 45) + (gGameFrameCount * 2)) * 200.0f;
spC4 = SIN_DEG((this->index * 45) + gGameFrameCount) * 200.0f;
}
this->fwork[4] = gActors[this->unk_0E6].obj.pos.x + spCC;
this->fwork[5] = gActors[this->unk_0E6].obj.pos.y + spC8;
this->fwork[6] = gActors[this->unk_0E6].obj.pos.z + spC4;
if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) {
this->fwork[4] = gActors[this->aiIndex].obj.pos.x + spCC;
this->fwork[5] = gActors[this->aiIndex].obj.pos.y + spC8;
this->fwork[6] = gActors[this->aiIndex].obj.pos.z + spC4;
if ((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= 4)) {
this->fwork[1] = 55.0f;
this->fwork[3] = 1.6f;
} else if ((gCurrentLevel == LEVEL_FORTUNA) && (this->unk_0E4 >= 0xB)) {
} else if ((gCurrentLevel == LEVEL_FORTUNA) && (this->aiType >= 0xB)) {
this->fwork[3] = 1.4f;
this->fwork[1] = 50.0f;
} else {
this->fwork[1] = gActors[this->unk_0E6].fwork[0] + 10.0f;
this->fwork[1] = gActors[this->aiIndex].fwork[0] + 10.0f;
if (this->fwork[1] < 30.0f) {
this->fwork[1] = 30.0f;
}
@ -1513,11 +1513,11 @@ void func_800319AC(Actor* this) {
this->fwork[6] = gBosses[0].obj.pos.z;
this->fwork[1] = 40.0f;
}
if ((this->unk_0E6 >= 0) && (this->unk_0E6 != 100) && (gActors[0].state != 6)) {
if ((this->aiIndex >= 0) && (this->aiIndex != 100) && (gActors[0].state != 6)) {
if (spE8 < spF8) {
if (spEC < spF8) {
if (this->unk_0E6 != 0) {
this->fwork[1] = gActors[this->unk_0E6].fwork[0] - 5.0f;
if (this->aiIndex != 0) {
this->fwork[1] = gActors[this->aiIndex].fwork[0] - 5.0f;
} else {
this->fwork[1] = gPlayer[0].unk_0D0 - 5.0f;
if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_5) &&
@ -1535,11 +1535,11 @@ void func_800319AC(Actor* this) {
this->iwork[5] = 1;
if (!((this->index + gGameFrameCount) & sp10F) && (Rand_ZeroOne() < spF0) &&
func_80031900(this) && ((gActors[0].state == 2) || (gCurrentLevel == LEVEL_TRAINING))) {
if ((this->unk_0E6 == 0) && (gCurrentLevel != LEVEL_TRAINING)) {
if ((this->aiIndex == 0) && (gCurrentLevel != LEVEL_TRAINING)) {
if ((this->iwork[4] > 250) && (gCurrentLevel != LEVEL_VENOM_ANDROSS)) {
if ((Rand_ZeroOne() < 0.5f) || (gCurrentLevel == LEVEL_VENOM_2)) {
this->iwork[4] = 0;
switch (this->unk_0E4) {
switch (this->aiType) {
case 4:
func_8002E4F8(gMsg_ID_19450, RCID_WOLF);
break;
@ -1566,47 +1566,47 @@ void func_800319AC(Actor* this) {
(gActors[0].obj.status == OBJ_ACTIVE)) {
this->timer_0C4 = 600;
if (Rand_ZeroOne() < 0.5f) {
gActors[this->unk_0E6].iwork[6]++;
switch (this->unk_0E6) {
gActors[this->aiIndex].iwork[6]++;
switch (this->aiIndex) {
case 1:
if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_19462, RCID_FALCO);
} else if ((gActors[this->unk_0E6].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) {
} else if ((gActors[this->aiIndex].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_20310, RCID_FALCO);
} else {
func_8002F5F4(gMsg_ID_9100, RCID_FALCO);
}
gActors[this->unk_0E6].iwork[2] = this->unk_0E4;
if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) {
D_800CA234 = &gActors[this->unk_0E6];
gActors[this->aiIndex].iwork[2] = this->aiType;
if ((D_800CA234 == NULL) || (gTeamShields[this->aiIndex] <= 50)) {
D_800CA234 = &gActors[this->aiIndex];
D_Timer_800CA238 = 320;
}
break;
case 2:
if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_19463, RCID_SLIPPY);
} else if ((gActors[this->unk_0E6].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) {
} else if ((gActors[this->aiIndex].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_20311, RCID_SLIPPY);
} else {
func_8002F5F4(gMsg_ID_9110, RCID_SLIPPY);
}
gActors[this->unk_0E6].iwork[2] = this->unk_0E4;
if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) {
D_800CA234 = &gActors[this->unk_0E6];
gActors[this->aiIndex].iwork[2] = this->aiType;
if ((D_800CA234 == NULL) || (gTeamShields[this->aiIndex] <= 50)) {
D_800CA234 = &gActors[this->aiIndex];
D_Timer_800CA238 = 320;
}
break;
case 3:
if ((gCurrentLevel == LEVEL_VENOM_2) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_19464, 0x1E);
} else if ((gActors[this->unk_0E6].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) {
} else if ((gActors[this->aiIndex].iwork[6] >= 3) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_20312, 0x1E);
} else {
func_8002F5F4(gMsg_ID_9120, 0x1E);
}
gActors[this->unk_0E6].iwork[2] = this->unk_0E4;
if ((D_800CA234 == NULL) || (gTeamShields[this->unk_0E6] <= 50)) {
D_800CA234 = &gActors[this->unk_0E6];
gActors[this->aiIndex].iwork[2] = this->aiType;
if ((D_800CA234 == NULL) || (gTeamShields[this->aiIndex] <= 50)) {
D_800CA234 = &gActors[this->aiIndex];
D_Timer_800CA238 = 320;
}
break;
@ -1632,14 +1632,14 @@ void func_800319AC(Actor* this) {
break;
}
} else {
switch (this->unk_0E4) {
switch (this->aiType) {
case 1:
if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) {
func_8002F5F4(gMsg_ID_9211, RCID_FALCO);
} else {
func_8002F5F4(gMsg_ID_9190, RCID_FALCO);
}
gActors[this->unk_0E6].iwork[2] = 1;
gActors[this->aiIndex].iwork[2] = 1;
break;
case 2:
if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) {
@ -1647,7 +1647,7 @@ void func_800319AC(Actor* this) {
} else {
func_8002F5F4(gMsg_ID_9200, RCID_SLIPPY);
}
gActors[this->unk_0E6].iwork[2] = 2;
gActors[this->aiIndex].iwork[2] = 2;
break;
case 3:
if ((gCurrentLevel == LEVEL_FORTUNA) && (Rand_ZeroOne() < 0.5f)) {
@ -1655,7 +1655,7 @@ void func_800319AC(Actor* this) {
} else {
func_8002F5F4(gMsg_ID_9210, RCID_PEPPY);
}
gActors[this->unk_0E6].iwork[2] = 3;
gActors[this->aiIndex].iwork[2] = 3;
break;
case 4:
if (gCurrentLevel != LEVEL_VENOM_2) {
@ -1676,12 +1676,12 @@ void func_800319AC(Actor* this) {
break;
case 5:
if (gCurrentLevel == LEVEL_VENOM_2) {
if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 1)) {
if ((Rand_ZeroOne() < 0.5f) && (this->aiIndex == 1)) {
func_8002F5F4(gMsg_ID_9323, RCID_LEON);
} else {
func_8002F5F4(gMsg_ID_19451, RCID_LEON);
}
} else if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 1)) {
} else if ((Rand_ZeroOne() < 0.5f) && (this->aiIndex == 1)) {
func_8002F5F4(gMsg_ID_9323, RCID_LEON);
} else {
func_8002F5F4(gMsg_ID_9300, RCID_LEON);
@ -1689,12 +1689,12 @@ void func_800319AC(Actor* this) {
break;
case 6:
if (gCurrentLevel == LEVEL_VENOM_2) {
if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 3)) {
if ((Rand_ZeroOne() < 0.5f) && (this->aiIndex == 3)) {
func_8002F5F4(gMsg_ID_9324, RCID_PIGMA);
} else {
func_8002F5F4(gMsg_ID_19452, RCID_PIGMA);
}
} else if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 3)) {
} else if ((Rand_ZeroOne() < 0.5f) && (this->aiIndex == 3)) {
func_8002F5F4(gMsg_ID_9324, RCID_PIGMA);
} else {
func_8002F5F4(gMsg_ID_9310, RCID_PIGMA);
@ -1702,12 +1702,12 @@ void func_800319AC(Actor* this) {
break;
case 7:
if (gCurrentLevel == LEVEL_VENOM_2) {
if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 2)) {
if ((Rand_ZeroOne() < 0.5f) && (this->aiIndex == 2)) {
func_8002F5F4(gMsg_ID_9325, RCID_ANDREW);
} else {
func_8002F5F4(gMsg_ID_19453, RCID_ANDREW);
}
} else if ((Rand_ZeroOne() < 0.5f) && (this->unk_0E6 == 2)) {
} else if ((Rand_ZeroOne() < 0.5f) && (this->aiIndex == 2)) {
func_8002F5F4(gMsg_ID_9325, RCID_ANDREW);
} else {
func_8002F5F4(gMsg_ID_9320, RCID_ANDREW);
@ -1719,9 +1719,9 @@ void func_800319AC(Actor* this) {
} else {
this->iwork[4] = 0;
}
if ((this->unk_0E6 > 0) &&
((gActors[this->unk_0E6].obj.status == OBJ_DYING) || (gActors[this->unk_0E6].state == 6) ||
(gActors[this->unk_0E6].obj.status == OBJ_FREE))) {
if ((this->aiIndex > 0) &&
((gActors[this->aiIndex].obj.status == OBJ_DYING) || (gActors[this->aiIndex].state == 6) ||
(gActors[this->aiIndex].obj.status == OBJ_FREE))) {
this->state = 3;
if (gCurrentLevel == LEVEL_BOLSE) {
func_8002FB4C(this);
@ -1733,9 +1733,9 @@ void func_800319AC(Actor* this) {
case 3:
sp104 = 1;
if (this->timer_0BC == 0) {
if ((this->unk_0E4 < 10) || (gCurrentLevel == LEVEL_BOLSE)) {
if ((this->aiType < 10) || (gCurrentLevel == LEVEL_BOLSE)) {
if (gCurrentLevel == LEVEL_VENOM_2) {
if (this->unk_0E4 >= 4) {
if (this->aiType >= 4) {
this->fwork[3] = 1.6f;
this->fwork[1] = 55.0f;
} else {
@ -1754,7 +1754,7 @@ void func_800319AC(Actor* this) {
this->fwork[10] = 30.0f;
}
if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) {
if ((gCurrentLevel == LEVEL_SECTOR_Z) && (this->unk_0E4 == 8)) {
if ((gCurrentLevel == LEVEL_SECTOR_Z) && (this->aiType == 8)) {
spE4 = RAND_FLOAT_CENTERED(0.0f);
spE0 = RAND_FLOAT_CENTERED(500.0f);
spDC = RAND_FLOAT_CENTERED(5000.0f) + 12000.0f;
@ -1788,12 +1788,12 @@ void func_800319AC(Actor* this) {
this->timer_0C0 = RAND_INT(200.0f) + 200;
this->fwork[10] = 30.0f;
}
if ((this->unk_0E6 > 0) && (gActors[this->unk_0E6].obj.id == OBJ_ACTOR_197) &&
(gActors[this->unk_0E6].timer_0C2 == 0) && (gActors[this->unk_0E6].obj.status == OBJ_ACTIVE)) {
if ((this->aiIndex > 0) && (gActors[this->aiIndex].obj.id == OBJ_ACTOR_197) &&
(gActors[this->aiIndex].timer_0C2 == 0) && (gActors[this->aiIndex].obj.status == OBJ_ACTIVE)) {
this->state = 2;
this->iwork[2] = 0;
}
if (this->unk_0E6 == 0) {
if (this->aiIndex == 0) {
if (this->unk_04E != 0) {
this->unk_04E--;
}
@ -1883,9 +1883,9 @@ void func_800319AC(Actor* this) {
spD4 = this->fwork[19];
sp108 = 0;
if (sp104 == 1) {
if (this->unk_0E4 < 100) {
if (this->aiType < 100) {
sp108 = func_8003049C(this);
if ((sp108 != 0) && (this->unk_0E4 < 10) && (this->timer_0BE == 0) &&
if ((sp108 != 0) && (this->aiType < 10) && (this->timer_0BE == 0) &&
((this->fwork[7] < 0.01f) || (this->fwork[7] > 359.9f))) {
this->timer_0BE = RAND_INT(200.0f) + 200;
if (Rand_ZeroOne() < 0.5f) {
@ -1898,7 +1898,7 @@ void func_800319AC(Actor* this) {
}
}
if (sp108 != 0) {
if ((this->unk_0E4 < 10) || (gCurrentLevel != LEVEL_FORTUNA)) {
if ((this->aiType < 10) || (gCurrentLevel != LEVEL_FORTUNA)) {
spD8 += 40.0f * sp108;
} else {
spD8 += 20.0f * sp108;
@ -1937,7 +1937,7 @@ void func_800319AC(Actor* this) {
}
if ((this->fwork[7] > 0.01f) && (this->fwork[7] < 359.9f)) {
Math_SmoothStepToAngle(&this->obj.rot.z, this->fwork[7], 0.2f, 100.0f, 0.01f);
if ((this->unk_0E4 == 8) && !(gGameFrameCount & 1)) {
if ((this->aiType == 8) && !(gGameFrameCount & 1)) {
if ((this->fwork[7] > 10.0f) && (this->fwork[7] < 350.0f)) {
Matrix_RotateY(gCalcMatrix, this->obj.rot.y * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, this->obj.rot.x * M_DTOR, 1);
@ -1983,7 +1983,7 @@ void func_800319AC(Actor* this) {
sp90.x = spBC * sp90.z;
sp90.z = spB4 * sp90.z;
if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) {
if ((gCurrentLevel == LEVEL_VENOM_2) && (this->aiType >= 4)) {
Matrix_RotateY(gCalcMatrix, this->obj.rot.y * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, this->obj.rot.x * M_DTOR, 1);
Matrix_RotateZ(gCalcMatrix, this->obj.rot.z * M_DTOR, 1);
@ -1992,19 +1992,19 @@ void func_800319AC(Actor* this) {
if (Rand_ZeroOne() < 0.8f) {
spA8.x = 60.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
func_8006EEFC(this->unk_0E4, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
func_8006EEFC(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
this->obj.pos.y + sp9C.y + (sp90.y * 1.5f), this->obj.pos.z + sp9C.z + (sp90.z * 1.5f),
sp90.x, sp90.y, sp90.z, this->obj.rot.x, this->obj.rot.y, this->obj.rot.z);
}
if (Rand_ZeroOne() < 0.8f) {
spA8.x = -60.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spA8, &sp9C);
func_8006EEFC(this->unk_0E4, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
func_8006EEFC(this->aiType, this->obj.pos.x + sp9C.x + (sp90.x * 1.5f),
this->obj.pos.y + sp9C.y + (sp90.y * 1.5f), this->obj.pos.z + sp9C.z + (sp90.z * 1.5f),
sp90.x, sp90.y, sp90.z, this->obj.rot.x, this->obj.rot.y, this->obj.rot.z);
}
} else {
func_8006EEFC(this->unk_0E4, this->obj.pos.x + (sp90.x * 1.5f), this->obj.pos.y + (sp90.y * 1.5f),
func_8006EEFC(this->aiType, this->obj.pos.x + (sp90.x * 1.5f), this->obj.pos.y + (sp90.y * 1.5f),
this->obj.pos.z + (sp90.z * 1.5f), sp90.x, sp90.y, sp90.z, this->obj.rot.x, this->obj.rot.y,
this->obj.rot.z);
}
@ -2012,10 +2012,10 @@ void func_800319AC(Actor* this) {
func_8003088C(this);
radarMark = &gRadarMarks[this->index];
radarMark->unk_00 = 1;
if (this->unk_0E4 == 200) {
if (this->aiType == 200) {
radarMark->unk_02 = 100;
} else {
radarMark->unk_02 = this->unk_0E4;
radarMark->unk_02 = this->aiType;
}
if (gCurrentLevel == LEVEL_TRAINING) {
radarMark->unk_02 = 4;
@ -2027,7 +2027,7 @@ void func_800319AC(Actor* this) {
if (this->iwork[1] != 0) {
this->iwork[1]--;
if ((this->iwork[1] == 0) && (gActors[0].state == 2) && (gRadioState == 0)) {
switch (this->unk_0E4) {
switch (this->aiType) {
case 1:
func_8002F5F4(gMsg_ID_9220, RCID_FALCO);
break;
@ -2045,8 +2045,8 @@ void func_800319AC(Actor* this) {
}
}
if ((gCurrentLevel != LEVEL_KATINA) && (gCurrentLevel != LEVEL_VENOM_ANDROSS) && (this->timer_0C2 == 0)) {
if (((this->unk_0E4 >= 10) && (this->unk_0E4 < 100)) ||
((this->unk_0E4 >= 4) && (this->unk_0E4 < 10) && (this->timer_0C6 != 0))) {
if (((this->aiType >= 10) && (this->aiType < 100)) ||
((this->aiType >= 4) && (this->aiType < 10) && (this->timer_0C6 != 0))) {
s32 var_a3 = 0;
if (((gCurrentLevel == LEVEL_BOLSE) || (gCurrentLevel == LEVEL_SECTOR_Z)) && (this->timer_0C6 == 0)) {
@ -2060,7 +2060,7 @@ void func_800319AC(Actor* this) {
this->obj.pos.x -= this->vel.x;
this->obj.pos.y -= this->vel.y;
this->obj.pos.z -= this->vel.z;
if ((temp_v0_27 >= 2) && (this->unk_0E4 >= 0xB)) {
if ((temp_v0_27 >= 2) && (this->aiType >= 0xB)) {
this->timer_0BE = 2;
this->obj.status = OBJ_DYING;
this->unk_044 = 0;
@ -2169,8 +2169,8 @@ void func_80035448(Actor* actor) {
Vec3f sp7C[30];
f32 pad2;
if (actor->unk_0E4 != 1000) {
if ((actor->iwork[8] != 0) && (actor->unk_0E4 < 100)) {
if (actor->aiType != 1000) {
if ((actor->iwork[8] != 0) && (actor->aiType < 100)) {
pad2 = SIN_DEG(actor->iwork[8] * 400.0f);
sp38 = actor->iwork[8] * pad2;
Matrix_RotateY(gGfxMatrix, M_DTOR * sp38, 1);
@ -2182,7 +2182,7 @@ void func_80035448(Actor* actor) {
RCP_SetupDL(&gMasterDisp, 0x1D);
gSPFogPosition(gMasterDisp++, gFogNear, 1005);
}
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 0:
case 1:
case 2:
@ -2278,7 +2278,7 @@ void func_80035448(Actor* actor) {
} else if (gCurrentLevel == LEVEL_VERSUS) {
gSPDisplayList(gMasterDisp++, D_versus_3015740);
} else if (gCurrentLevel == LEVEL_TRAINING) {
if (actor->unk_0E6 == 0) {
if (actor->aiIndex == 0) {
gSPDisplayList(gMasterDisp++, D_STAR_WOLF_F00F200);
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -60.0f, 1);
func_8005B1E8(actor, 3);

View File

@ -786,7 +786,7 @@ void func_80038140(PlayerShot* shot) {
default:
if (actor->info.unk_16 != 0) {
if (actor->obj.id == OBJ_ACTOR_197) {
if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 10) &&
if ((actor->aiType >= 4) && (actor->aiType < 10) &&
(((gCurrentLevel == LEVEL_VENOM_2) && (shot->playerNum < 104)) ||
((gCurrentLevel != LEVEL_VENOM_2) && (shot->playerNum == 0))) &&
(shot->obj.id != PLAYERSHOT_8) &&

View File

@ -61,7 +61,7 @@ void func_80051B30(void) {
sp7C = 1;
}
RCP_SetupDL(&gMasterDisp, 0xC);
switch (D_800CA234->unk_0E4) {
switch (D_800CA234->aiType) {
case 3:
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 30, 0, 255);
break;

View File

@ -1,4 +1,3 @@
#include "global.h"
#include "fox_edisplay_assets.h"
#include "assets/ast_katina.h"
@ -19,7 +18,7 @@
#include "assets/ast_enmy_planet.h"
#include "assets/ast_ve1_boss.h"
#include "assets/ast_zoness.h"
#include "prevent_bss_reordering.h"
Vec3f D_801615D0;
Vec3f D_801615E0;
s32 D_801615EC;
@ -1017,7 +1016,7 @@ void Actor_Draw2(Actor* actor) {
func_8005F1EC(actor->sfxSource);
if (((actor->obj.id == OBJ_ACTOR_198) || ((actor->obj.id == OBJ_ACTOR_203) && (actor->unk_0B6 > 0))) &&
(D_80161410 > 0)) {
Matrix_MultVec3f(gGfxMatrix, &sp34, &D_80177E98[actor->unk_0E4]);
Matrix_MultVec3f(gGfxMatrix, &sp34, &D_80177E98[actor->aiType]);
}
}
if ((actor->timer_0CA[0] != 0) && (D_80161410 > 0)) {
@ -1049,7 +1048,7 @@ void Actor_Draw1(Actor* actor) {
Matrix_Pop(&gGfxMatrix);
var_fv0 = 0.0f;
var_fv1 = -12000.0f;
if ((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 >= 100)) {
if ((actor->obj.id == OBJ_ACTOR_197) && (actor->aiType >= 100)) {
var_fv0 = 1000.0f;
var_fv1 = -25000.0f;
}
@ -1062,7 +1061,7 @@ void Actor_Draw1(Actor* actor) {
actor->info.draw(&actor->obj);
D_801615EC = 1;
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (actor->obj.id == OBJ_ACTOR_197) &&
(actor->unk_0E4 == 200)) {
(actor->aiType == 200)) {
D_80177E98[0] = D_801615E0;
}
}
@ -1072,7 +1071,7 @@ void Actor_Draw1(Actor* actor) {
Matrix_Translate(gGfxMatrix, actor->obj.pos.x, actor->obj.pos.y, actor->obj.pos.z, 1);
Matrix_MultVec3f(gGfxMatrix, &sp50, &D_801615E0);
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0) ||
((actor->obj.id == OBJ_ACTOR_197) && (actor->unk_0E4 >= 100)) ||
((actor->obj.id == OBJ_ACTOR_197) && (actor->aiType >= 100)) ||
((actor->obj.id == OBJ_ACTOR_195) && (actor->info.bonus != 0))) {
var_ft5 = var_fv0 = 3000.0f;
var_fv1 = -29000.0f;
@ -1095,9 +1094,9 @@ void Actor_Draw1(Actor* actor) {
D_801615EC = 1;
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) &&
(((actor->obj.id == OBJ_ACTOR_197) &&
((actor->unk_0E4 < 4) || (actor->unk_0E4 == 8) || (actor->unk_0E4 == 9))) ||
((actor->aiType < 4) || (actor->aiType == 8) || (actor->aiType == 9))) ||
(actor->obj.id == OBJ_ACTOR_198))) {
D_80177E98[actor->unk_0E4] = D_801615E0;
D_80177E98[actor->aiType] = D_801615E0;
}
}
}
@ -1286,7 +1285,7 @@ void func_8005EA24(Actor* actor) {
Matrix_RotateY(gGfxMatrix, (actor->obj.rot.y + 180.0f) * M_DTOR, 1);
Matrix_RotateZ(gGfxMatrix, actor->obj.rot.z * M_DTOR, 1);
Matrix_SetGfxMtx(&gMasterDisp);
if (actor->unk_0E4 < 4) {
if (actor->aiType < 4) {
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, 30.0f, 1);
Matrix_SetGfxMtx(&gMasterDisp);
gSPDisplayList(gMasterDisp++, D_1032780);
@ -1296,7 +1295,7 @@ void func_8005EA24(Actor* actor) {
} else {
gSPDisplayList(gMasterDisp++, D_KA_600DBC0);
}
} else if ((actor->unk_0E4 < 8) || (gCurrentLevel != LEVEL_FORTUNA)) {
} else if ((actor->aiType < 8) || (gCurrentLevel != LEVEL_FORTUNA)) {
gSPDisplayList(gMasterDisp++, D_STAR_WOLF_F014310);
} else if (gCurrentLevel == LEVEL_FORTUNA) {
gSPDisplayList(gMasterDisp++, D_FO_6009F90);

View File

@ -383,13 +383,13 @@ void func_80061F0C(Actor* actor, ObjectInit* objInit, s32 arg2) {
actor->obj.id = OBJ_ACTOR_200;
actor->timer_0C2 = 10;
actor->unk_0B4 = 4095;
actor->unk_0E4 = objInit->id - OBJ_UNK_1000;
actor->aiType = objInit->id - OBJ_UNK_1000;
Object_SetInfo(&actor->info, actor->obj.id);
actor->info.unk_10 = 3000.0f;
actor->fwork[25] = 20000.0f;
actor->iwork[1] = D_80177E70;
actor->iwork[10] = gActors[D_80177E70].unk_0E4;
actor->iwork[10] = gActors[D_80177E70].aiType;
actor->fwork[22] = D_80161A54;
Matrix_RotateZ(gCalcMatrix, -D_80177E88.z * M_DTOR, 0);
Matrix_RotateX(gCalcMatrix, -D_80177E88.x * M_DTOR, 1);
@ -885,7 +885,7 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) {
for (i = 0; i < ARRAY_COUNT(gActors); i++, actor++) {
if ((actor->obj.status >= OBJ_ACTIVE) && (fabsf(pos->x - actor->obj.pos.x) < 1000.0f) &&
(fabsf(pos->z - actor->obj.pos.z) < 1500.0f) && (index != i) && (actor->info.unk_16 != 2) &&
((actor->obj.id != OBJ_ACTOR_197) || (actor->unk_0E4 >= 4)) && (actor->timer_0C2 == 0)) {
((actor->obj.id != OBJ_ACTOR_197) || (actor->aiType >= 4)) && (actor->timer_0C2 == 0)) {
if (actor->obj.id == OBJ_ACTOR_180) {
if (func_8006326C(pos, arg2, actor->obj.id, &actor->obj)) {
return 2;
@ -906,8 +906,8 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) {
actor->unk_0D0 = 1;
actor->damage = 10;
actor->unk_0D2 = -1;
if (((actor->obj.id != OBJ_ACTOR_200) || (actor->iwork[12] == 0)) &&
((actor->obj.id != OBJ_ACTOR_197) || ((actor->unk_0E4 >= 10) && (actor->unk_0E4 < 100)))) {
if (!(((actor->obj.id == OBJ_ACTOR_200) && (actor->iwork[12] != 0)) ||
((actor->obj.id == OBJ_ACTOR_197) && ((actor->aiType < 10) || (actor->aiType >= 100))))) {
actor->health = 0;
}
actor->unk_0D8.x = pos->x;
@ -1665,7 +1665,7 @@ void func_80066254(Actor* actor) {
D_80161A62 = 0;
}
if (actor->obj.id == OBJ_ACTOR_197) {
if ((actor->unk_0E4 >= 4) && (actor->unk_0E4 < 8)) {
if ((actor->aiType >= 4) && (actor->aiType < 8)) {
func_8002E3E0(actor);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2464,7 +2464,7 @@ s32 func_8008B774(void) {
if ((gActors[i].obj.status == OBJ_ACTIVE) && (gActors[i].iwork[12] == temp)) {
if ((gActors[i].unk_0B4 == 2) || (gActors[i].unk_0B4 == 43) ||
((gActors[i].obj.id == 198) &&
((gActors[i].unk_0E4 == 1) || (gActors[i].unk_0E4 == 2) || (gActors[i].unk_0E4 == 3)))) {
((gActors[i].aiType == 1) || (gActors[i].aiType == 2) || (gActors[i].aiType == 3)))) {
if (gActors[i].timer_0C6) {
ret = 1;
} else {
@ -3839,7 +3839,7 @@ bool func_8009092C(Actor* actor) {
Boss* boss;
s32 i = 0;
if (actor->unk_0E6 != 0) {
if (actor->aiIndex != 0) {
return true;
}
@ -3848,10 +3848,10 @@ bool func_8009092C(Actor* actor) {
for (i = 1; i < 4; i++, boss++) {
if (boss->obj.status == OBJ_ACTIVE) {
var_s5 = true;
if (actor->unk_0E6 == 0) {
actor->unk_0E6 = i;
if (actor->aiIndex == 0) {
actor->aiIndex = i;
} else if (Rand_ZeroOne() > 0.4f) {
actor->unk_0E6 = i;
actor->aiIndex = i;
}
actor->state = 0;
}
@ -3938,9 +3938,9 @@ bool func_80090CCC(Actor* actor) {
bool ret = false;
if (func_8009092C(actor)) {
actor->fwork[6] = gBosses[actor->unk_0E6].obj.pos.z;
actor->fwork[5] = gBosses[actor->unk_0E6].obj.pos.y;
actor->fwork[4] = gBosses[actor->unk_0E6].obj.pos.x;
actor->fwork[6] = gBosses[actor->aiIndex].obj.pos.z;
actor->fwork[5] = gBosses[actor->aiIndex].obj.pos.y;
actor->fwork[4] = gBosses[actor->aiIndex].obj.pos.x;
} else {
actor->fwork[6] = gBosses[0].obj.pos.z;
actor->fwork[5] = gBosses[0].obj.pos.y;
@ -3967,9 +3967,9 @@ bool func_80090CCC(Actor* actor) {
actor->fwork[10] = 30.0f;
}
if (gBosses[actor->unk_0E6].obj.status == OBJ_FREE) {
if (gBosses[actor->aiIndex].obj.status == OBJ_FREE) {
actor->state = 1;
actor->unk_0E6 = 0;
actor->aiIndex = 0;
actor->iwork[6] = 0;
ret = true;
}
@ -4002,7 +4002,7 @@ s32 func_80090E8C(Actor* actor) {
}
}
if (actor->unk_0E4 == 1) {
if (actor->aiType == 1) {
var_fv1_2 = 3000.0f;
} else {
var_fv1_2 = 5000.0f;
@ -4034,7 +4034,7 @@ bool func_800910C0(Actor* actor) {
actor->fwork[5] = actor->vwork[28].y;
actor->fwork[6] = gBosses[0].obj.pos.z + actor->vwork[28].z;
if (actor->unk_0E4 == 1) {
if (actor->aiType == 1) {
var_fv1 = 1500.0f;
} else {
var_fv1 = 3000.0f;
@ -4063,7 +4063,7 @@ void func_80091254(Actor* actor) {
bool func_80091298(Actor* actor) {
actor->fwork[1] = gPlayer[0].unk_0D0 + 10.0f;
actor->fwork[3] = 3.6f;
actor->fwork[4] = gPlayer[0].pos.x + ((f32) (actor->unk_0E4 - 2) * 700.0f);
actor->fwork[4] = gPlayer[0].pos.x + ((f32) (actor->aiType - 2) * 700.0f);
actor->fwork[5] = gPlayer[0].pos.y;
actor->fwork[6] = gPlayer[0].unk_138;
@ -4080,9 +4080,9 @@ bool func_80091368(Actor* actor) {
actor->fwork[5] = 20000.0f;
actor->iwork[1] = 1;
actor->iwork[5] = 1;
gTeamShields[actor->unk_0E4] = 1;
gTeamShields[actor->aiType] = 1;
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 1:
Radio_PlayMessage(gMsg_ID_20220, RCID_FALCO);
break;
@ -4095,7 +4095,7 @@ bool func_80091368(Actor* actor) {
Radio_PlayMessage(gMsg_ID_20222, RCID_SLIPPY);
break;
}
gTeamShields[actor->unk_0E4] = -1;
gTeamShields[actor->aiType] = -1;
break;
case 1:
@ -4140,7 +4140,7 @@ void func_800914FC(Actor* actor) {
break;
}
if ((gTeamShields[actor->unk_0E4] <= 0) && (actor->state != 3)) {
if ((gTeamShields[actor->aiType] <= 0) && (actor->state != 3)) {
actor->iwork[5] = 0;
actor->state = 3;
}
@ -4195,7 +4195,7 @@ bool func_800915FC(Actor* actor) {
boss = &gBosses[0];
y = 650.0f;
if (actor->unk_0E4 < 8) {
if (actor->aiType < 8) {
y = 720.0f;
}
@ -4335,7 +4335,7 @@ bool func_80091DF4(Actor* actor) {
sp44.y = 0.0f;
sp44.z = 100.0f;
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp44, &sp38);
func_8006EEFC(actor->unk_0E4, actor->obj.pos.x + (sp38.x * 1.5), actor->obj.pos.y + (sp38.y * 1.5),
func_8006EEFC(actor->aiType, actor->obj.pos.x + (sp38.x * 1.5), actor->obj.pos.y + (sp38.y * 1.5),
actor->obj.pos.z + (sp38.z * 1.5), sp38.x, sp38.y, sp38.z, actor->obj.rot.x, actor->obj.rot.y,
actor->obj.rot.z);
}
@ -4378,14 +4378,14 @@ bool func_80091F00(Actor* actor) {
actor->fwork[14] = sp34.y;
actor->fwork[12] = sp34.z;
gTeamShields[actor->unk_0E4] = actor->health;
gTeamShields[actor->aiType] = actor->health;
if (gRadioState != 0) {
return false;
}
if ((actor->unk_0D0 == 3) && (actor->unk_0D4 == 1)) {
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 1:
Radio_PlayMessage(gMsg_ID_20210, RCID_FALCO);
break;
@ -4399,7 +4399,7 @@ bool func_80091F00(Actor* actor) {
}
if ((actor->unk_0D0 != 3) && (actor->unk_0D4 == 1)) {
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 1:
Radio_PlayMessage(gMsg_ID_20060, RCID_FALCO);
break;
@ -4413,7 +4413,7 @@ bool func_80091F00(Actor* actor) {
}
if ((actor->unk_0D4 == 2) || (actor->unk_0D4 == 100)) {
switch (actor->unk_0E4) {
switch (actor->aiType) {
case 1:
Radio_PlayMessage(gMsg_ID_20030, RCID_FALCO);
break;
@ -4432,7 +4432,7 @@ bool func_80091F00(Actor* actor) {
void func_80092244(Actor* actor) {
gRadarMarks[actor->index].unk_00 = 1;
gRadarMarks[actor->index].unk_02 = actor->unk_0E4;
gRadarMarks[actor->index].unk_02 = actor->aiType;
gRadarMarks[actor->index].pos.x = actor->obj.pos.x;
gRadarMarks[actor->index].pos.y = actor->obj.pos.y;
gRadarMarks[actor->index].pos.z = actor->obj.pos.z;
@ -4442,15 +4442,15 @@ void func_80092244(Actor* actor) {
void func_800922F4(Actor* actor) {
s32 temp;
if ((gTeamShields[actor->unk_0E4] < 64) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) {
if ((gTeamShields[actor->aiType] < 64) && (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7)) {
temp = 7;
if (gTeamShields[actor->unk_0E4] > 16) {
if (gTeamShields[actor->aiType] > 16) {
temp = 15;
}
if (gTeamShields[actor->unk_0E4] > 32) {
if (gTeamShields[actor->aiType] > 32) {
temp = 31;
}
if (gTeamShields[actor->unk_0E4] > 48) {
if (gTeamShields[actor->aiType] > 48) {
temp = 63;
}
@ -4673,16 +4673,16 @@ void func_80092D48(Actor* actor) {
if (gCurrentLevel != LEVEL_TITANIA) {
actor->fwork[1] = 40.0f;
actor->fwork[3] = 1.2f;
actor->unk_0E4 = (D_800D1970 & 3) + 1;
actor->aiType = (D_800D1970 & 3) + 1;
D_800D1970++;
} else {
actor->state = 7;
actor->unk_0E4 = 2;
actor->aiType = 2;
actor->iwork[5] = 0;
gTeamShields[2] = 255;
}
actor->iwork[12] = D_800D22A8[actor->unk_0E4 - 1];
actor->iwork[12] = D_800D22A8[actor->aiType - 1];
actor->iwork[11] = 1;
if (gLevelType == LEVELTYPE_PLANET) {
@ -4695,7 +4695,7 @@ void func_80092D48(Actor* actor) {
Object_Kill(&actor->obj, actor->sfxSource);
}
if (gTeamShields[actor->unk_0E4] <= 0) {
if (gTeamShields[actor->aiType] <= 0) {
Object_Kill(&actor->obj, actor->sfxSource);
}
}
@ -4703,7 +4703,7 @@ void func_80092D48(Actor* actor) {
void func_80092EC0(Actor* actor) {
f32 var_fv1;
actor->health = gTeamShields[actor->unk_0E4];
actor->health = gTeamShields[actor->aiType];
switch (actor->unk_048) {
case 0:

View File

@ -1996,7 +1996,7 @@ void func_800C26C8(void) {
actor->obj.pos.x = dest.x;
actor->obj.pos.y = dest.y;
actor->obj.pos.z = dest.z;
actor->unk_0E4 = i + 10;
actor->aiType = i + 10;
actor->health = 24;
actor->timer_0C2 = 30;

View File

@ -85,16 +85,9 @@ Vtx D_Vtx_800D9760[] = {
Gfx D_Gfx_800D9860[] = {
// unused
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_MIRROR | G_TX_WRAP, 5, G_TX_NOLOD,
G_TX_MIRROR | G_TX_WRAP, 5, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x007C, 0x007C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_Tex_800D99F8),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256),
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP, 5, 5,
G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32),
gsSPVertex(D_Vtx_800D9760, 16, 0),
gsSP1Triangle(2, 1, 0, 0),
gsSP1Triangle(3, 2, 0, 0),
@ -128,16 +121,9 @@ Vtx D_Vtx_800D9950[] = {
Gfx D_Gfx_800D9990[] = {
// unused
gsDPSetPrimColor(0, 0, 0xFF, 0xFF, 0xFF, 0xFF),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x001C, 0x001C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_Tex_800D99F8),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 63, 1024),
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
gsSPVertex(D_Vtx_800D9950, 4, 0),
gsSP1Triangle(1, 2, 3, 0),
gsSP1Triangle(1, 3, 0, 0),
@ -302,16 +288,9 @@ u16 D_Tex_800DA1F8[1024] = {
Gfx D_Gfx_800DA9F8[] = {
// unused
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x001C, 0x001C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_Tex_800D99F8),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 63, 1024),
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
gsSPVertex(D_Vtx_800D9910, 4, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
@ -327,16 +306,9 @@ Vtx D_Vtx_800DAA58[] = {
Gfx D_Gfx_800DAA98[] = {
// unused
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x001C, 0x001C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_Tex_800D99F8),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 63, 1024),
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
gsSPVertex(D_Vtx_800DAA58, 4, 0),
gsSP1Triangle(0, 1, 2, 0),
gsSP1Triangle(0, 2, 3, 0),
@ -365,16 +337,9 @@ Vtx D_Vtx_800DAB40[] = {
Gfx D_Gfx_800DAB80[] = {
// unused
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x001C, 0x001C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_Tex_800D99F8),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 63, 1024),
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTileTexture(D_Tex_800D99F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
gsSPVertex(D_Vtx_800DAB40, 4, 0),
gsSP1Triangle(0, 2, 1, 0),
gsSP1Triangle(0, 1, 3, 0),
@ -390,16 +355,9 @@ Vtx D_Vtx_800DABE0[] = {
Gfx D_Gfx_800DAC20[] = {
// used in fox_edisplay
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD),
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 0x001C, 0x001C),
gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_Tex_800DA1F8),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD),
gsDPLoadSync(),
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 63, 1024),
gsDPSetupTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 3, 3,
G_TX_NOLOD, G_TX_NOLOD),
gsDPLoadTileTexture(D_Tex_800DA1F8, G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 8),
gsSPVertex(D_Vtx_800DABE0, 4, 0),
gsSP1Triangle(0, 2, 1, 0),
gsSP1Triangle(0, 3, 2, 0),

View File

@ -150,7 +150,7 @@ void func_i1_80199024(Actor* actor) {
func_8003088C(actor);
radarMark = &gRadarMarks[actor->index];
radarMark->unk_00 = 1;
radarMark->unk_02 = actor->unk_0E4;
radarMark->unk_02 = actor->aiType;
radarMark->pos.x = actor->obj.pos.x;
radarMark->pos.y = actor->obj.pos.y;
radarMark->pos.z = actor->obj.pos.z;
@ -200,17 +200,17 @@ void func_i1_8019949C(void) {
actor->obj.pos.y = 2000.0f;
actor->obj.pos.z = sp38.z;
actor->unk_0F4.y = gGameFrameCount * 6.0f;
actor->unk_0E4 = i + 10;
actor->aiType = i + 10;
actor->health = 24;
actor->unk_0C9 = actor->iwork[11] = 1;
actor->timer_0C2 = 30;
Object_SetInfo(&actor->info, actor->obj.id);
AUDIO_PLAY_SFX(0x3100000C, actor->sfxSource, 4);
if ((i + 10) == 10) {
actor->unk_0E6 = 0;
actor->aiIndex = 0;
actor->health = 50;
} else {
actor->unk_0E6 = -1;
actor->aiIndex = -1;
actor->info.action = (ObjectFunc) func_i1_80199024;
}
break;

View File

@ -1,3 +1,4 @@
#include "prevent_bss_reordering.h"
#include "global.h"
#include "assets/ast_sector_x.h"
@ -33,7 +34,7 @@ void func_i2_8018F030(void) {
actor->obj.pos.y = gPlayer[0].camEye.y + 200.0f;
actor->obj.pos.z = gPlayer[0].camEye.z - D_80177D20 + 300.0f;
actor->iwork[11] = 1;
actor->unk_0E4 = 2;
actor->aiType = 2;
Object_SetInfo(&actor->info, actor->obj.id);
Radio_PlayMessage(gMsg_ID_5475, RCID_SLIPPY);
break;

View File

@ -60,11 +60,11 @@ void func_i4_8018BD60(Actor* actor) {
actorPtr->obj.pos.y = 1000.0f;
actorPtr->obj.pos.z = D_i4_8019EED4[actor->unk_04E];
actorPtr->state = 1;
actorPtr->unk_0E6 = -1;
actorPtr->aiIndex = -1;
actorPtr->health = 24;
actorPtr->iwork[11] = 1;
actorPtr->unk_044 = 2;
actorPtr->unk_0E4 = i;
actorPtr->aiType = i;
Object_SetInfo(&actorPtr->info, actorPtr->obj.id);
AUDIO_PLAY_SFX(0x3100000CU, actorPtr->sfxSource, 4U);
break;
@ -102,30 +102,30 @@ void func_i4_8018BEF8(Actor* actor, s32 arg1) {
actorPtr->state = 1;
actorPtr->timer_0C4 = 300;
actorPtr->unk_0E4 = i;
actorPtr->unk_0E6 = -1;
actorPtr->aiType = i;
actorPtr->aiIndex = -1;
if (i < 13) {
actorPtr->unk_0E6 = 2;
gActors[2].unk_0E6 = -1;
actorPtr->aiIndex = 2;
gActors[2].aiIndex = -1;
}
if ((i == 17) || (i == 18)) {
actorPtr->unk_0E6 = 0;
actorPtr->aiIndex = 0;
}
if ((i == 20) || (i == 21)) {
actorPtr->unk_0E6 = 3;
gActors[3].unk_0E6 = -1;
actorPtr->aiIndex = 3;
gActors[3].aiIndex = -1;
}
if (i == 22) {
actorPtr->unk_0E6 = 1;
gActors[1].unk_0E6 = -1;
actorPtr->aiIndex = 1;
gActors[1].aiIndex = -1;
}
if ((D_i4_801A0530 > 16000) && ((i == 23) || (i == 24))) {
actorPtr->unk_0E6 = 0;
actorPtr->aiIndex = 0;
}
actorPtr->health = 24;
@ -342,13 +342,13 @@ void func_i4_8018C158(Actor* actor) {
break;
case 6:
gActors[1].unk_0E6 = 0;
gActors[1].aiIndex = 0;
gActors[1].state = 2;
gActors[2].unk_0E6 = 0;
gActors[2].aiIndex = 0;
gActors[2].state = 2;
gActors[3].unk_0E6 = 0;
gActors[3].aiIndex = 0;
gActors[3].state = 2;
gActors[4].unk_0E6 = gActors[5].unk_0E6 = gActors[6].unk_0E6 = gActors[7].unk_0E6 = -1;
gActors[4].aiIndex = gActors[5].aiIndex = gActors[6].aiIndex = gActors[7].aiIndex = -1;
break;
}

View File

@ -38,17 +38,17 @@ void func_i4_801875F0(Actor* actor) {
actorPtr->obj.pos.z = gBosses[0].obj.pos.z;
actorPtr->state = 1;
actorPtr->timer_0BC = 100;
actorPtr->unk_0E4 = i + 10;
actorPtr->unk_0E6 = -1;
actorPtr->aiType = i + 10;
actorPtr->aiIndex = -1;
if ((i == 3) && (Rand_ZeroOne() < 0.3f)) {
actorPtr->unk_0E6 = 2;
actorPtr->aiIndex = 2;
}
if ((i == 4) && (Rand_ZeroOne() < 0.3f)) {
actorPtr->unk_0E6 = 3;
actorPtr->aiIndex = 3;
}
if ((i == 5) && (Rand_ZeroOne() < 0.3f)) {
actorPtr->unk_0E6 = 1;
actorPtr->aiIndex = 1;
}
actorPtr->unk_0F4.x = 3.0f;
@ -80,7 +80,7 @@ void func_i4_80187884(Actor* actor, f32 xPos, f32 yPos, f32 zPos, f32 arg4) {
actor->obj.pos.y = yPos;
actor->obj.pos.z = zPos;
actor->obj.id = OBJ_ACTOR_197;
actor->unk_0E4 = 4;
actor->aiType = 4;
actor->unk_0C9 = 1;
actor->state = 0;
actor->timer_0BC = 10000;
@ -151,8 +151,8 @@ void func_i4_80187960(Actor* actor) {
if (D_8015F928 == 8540) {
Radio_PlayMessage(gMsg_ID_9400, RCID_ROB64);
Audio_PlaySequence(SEQ_PLAYER_BGM, SEQ_ID_10 | 0x8000, 0, 0);
gActors[1].unk_0E6 = gActors[2].unk_0E6 = gActors[3].unk_0E6 = gActors[4].unk_0E6 = gActors[5].unk_0E6 =
gActors[6].unk_0E6 = gActors[7].unk_0E6 = -1;
gActors[1].aiIndex = gActors[2].aiIndex = gActors[3].aiIndex = gActors[4].aiIndex = gActors[5].aiIndex =
gActors[6].aiIndex = gActors[7].aiIndex = -1;
}
if ((D_800C9B4C < D_8015F928) && (D_8015F928 < 9970) && (D_80177CD0[0] == 0) && (D_80177CD0[1] == 0) &&
@ -362,11 +362,11 @@ void func_i4_80187960(Actor* actor) {
case 6:
actor->iwork[0] += 1;
if (D_80177930 == 0) {
actor1->unk_0E6 = 0;
actor1->aiIndex = 0;
actor1->state = 2;
actor2->unk_0E6 = 0;
actor2->aiIndex = 0;
actor2->state = 2;
actor3->unk_0E6 = 0;
actor3->aiIndex = 0;
actor3->state = 2;
if (actor->iwork[0] == 130) {
Vec3f sp50 = { 0.0f, 0.0f, -10000 };
@ -382,7 +382,7 @@ void func_i4_80187960(Actor* actor) {
actor19->state = 4;
actor19->unk_0F4.y = player->unk_0E8 + player->unk_114 + 180.0f;
actor19->unk_0F4.x = 15.0f;
actor19->unk_0E4 = 0x64;
actor19->aiType = 100;
actor19->fwork[1] = 90.0f;
actor19->fwork[0] = 90.0f;
Object_SetInfo(&actor19->info, actor19->obj.id);

View File

@ -579,9 +579,9 @@ void func_i4_80194458(Boss* boss, Vec3f* pos, f32 arg2) {
actor->timer_0BC = 20;
actor->unk_0F4.y = arg2;
actor->unk_0F4.x = -30.0f;
actor->unk_0E4 = i + 10;
actor->aiType = i + 10;
actor->unk_0B6 = D_i4_8019F198[i - 10];
actor->unk_0E6 = D_i4_8019F1C0[i - 10];
actor->aiIndex = D_i4_8019F1C0[i - 10];
actor->health = 24;
if (actor->unk_0B6 >= 2) {
actor->health = 1000;
@ -1749,8 +1749,8 @@ void func_i4_801981F8(Actor* actor) {
actor_it->obj.pos.z = dest.z;
actor_it->unk_0F4.y = actor->unk_04E * 18.0f;
actor_it->state = 1;
actor_it->unk_0E4 = i + 10;
actor_it->unk_0E6 = D_i4_8019F444[i];
actor_it->aiType = i + 10;
actor_it->aiIndex = D_i4_8019F444[i];
actor_it->unk_0F4.x = 3.0f;
actor_it->health = 24;
if (actor_it->unk_0B6 >= 2) {
@ -1786,8 +1786,8 @@ void func_i4_8019848C(void) {
actor->obj.pos.x = 0;
actor->obj.pos.y = 1000.0f;
actor->state = 1;
actor->unk_0E4 = 9;
actor->unk_0E6 = 27;
actor->aiType = 9;
actor->aiIndex = 27;
actor->unk_0B6 = 2;
actor->health = 1000;
actor->iwork[11] = 1;
@ -1832,11 +1832,11 @@ void func_i4_80198594(Actor* actor) {
break;
case 6:
gActors[1].unk_0E6 = 0;
gActors[1].aiIndex = 0;
gActors[1].state = 2;
gActors[2].unk_0E6 = 0;
gActors[2].aiIndex = 0;
gActors[2].state = 2;
gActors[3].unk_0E6 = 0;
gActors[3].aiIndex = 0;
gActors[3].state = 2;
break;
}
@ -1962,26 +1962,26 @@ void func_i4_80198AA0(Actor* actor) {
state = 1;
xDist = fabsf(actor->fwork[4] - actor->obj.pos.x);
yDist = fabsf(actor->fwork[6] - actor->obj.pos.z);
if (actor->unk_0E6 < 0) {
if (actor->aiIndex < 0) {
actor->state = 3;
} else {
if (actor->unk_0E4 >= 10) {
if (actor->aiType >= 10) {
xPos = __sinf(((actor->index * 45) + gGameFrameCount) * M_DTOR) * 200.0f;
yPos = __cosf(((actor->index * 45) + (gGameFrameCount * 2)) * M_DTOR) * 200.0f;
zPos = __sinf(((actor->index * 45) + gGameFrameCount) * M_DTOR) * 200.0f;
}
actor->fwork[4] = gActors[actor->unk_0E6].obj.pos.x + xPos;
actor->fwork[5] = gActors[actor->unk_0E6].obj.pos.y + yPos;
actor->fwork[6] = gActors[actor->unk_0E6].obj.pos.z + zPos;
actor->fwork[1] = gActors[actor->unk_0E6].fwork[0] + 10.0f;
actor->fwork[4] = gActors[actor->aiIndex].obj.pos.x + xPos;
actor->fwork[5] = gActors[actor->aiIndex].obj.pos.y + yPos;
actor->fwork[6] = gActors[actor->aiIndex].obj.pos.z + zPos;
actor->fwork[1] = gActors[actor->aiIndex].fwork[0] + 10.0f;
if (actor->fwork[1] < 30.0f) {
actor->fwork[1] = 30.0f;
}
actor->fwork[3] = 1.4f;
if (actor->unk_0E6 >= 0) {
if (actor->aiIndex >= 0) {
if (yDist < 800.0f) {
if (xDist < 800.0f) {
actor->fwork[1] = gActors[actor->unk_0E6].fwork[0] - 5.0f;
actor->fwork[1] = gActors[actor->aiIndex].fwork[0] - 5.0f;
}
} else if (actor->timer_0C0 == 0) {
actor->timer_0C0 = RAND_INT(200.0f) + 200;
@ -1999,9 +1999,9 @@ void func_i4_80198AA0(Actor* actor) {
actor->iwork[4] = 0;
}
if ((actor->unk_0E6 > 0) &&
((gActors[actor->unk_0E6].obj.status == 3) || (gActors[actor->unk_0E6].state == 6) ||
gActors[actor->unk_0E6].obj.status == OBJ_FREE)) {
if ((actor->aiIndex > 0) &&
((gActors[actor->aiIndex].obj.status == 3) || (gActors[actor->aiIndex].state == 6) ||
gActors[actor->aiIndex].obj.status == OBJ_FREE)) {
actor->state = 3;
}
}
@ -2032,7 +2032,7 @@ void func_i4_80198AA0(Actor* actor) {
actor->fwork[10] = 30.0f;
}
if ((actor->unk_0E6 > 0) && (gActors[actor->unk_0E6].obj.status == OBJ_ACTIVE)) {
if ((actor->aiIndex > 0) && (gActors[actor->aiIndex].obj.status == OBJ_ACTIVE)) {
actor->state = 2;
actor->iwork[2] = 0;
}
@ -2105,7 +2105,7 @@ void func_i4_80198AA0(Actor* actor) {
yVel = (-xSin * 200.0f * 0.5f);
xVel = (xCos * 200.0f * 0.5f);
zVel = (xCos * 200.0f * 0.5f);
func_8006EEFC(actor->unk_0E4, actor->obj.pos.x + ((ySin * xVel) * 1.5f), actor->obj.pos.y + (yVel * 1.5f),
func_8006EEFC(actor->aiType, actor->obj.pos.x + ((ySin * xVel) * 1.5f), actor->obj.pos.y + (yVel * 1.5f),
actor->obj.pos.z + ((yCos * zVel) * 1.5f), (ySin * (xCos * 200.0f * 0.5f)),
(-xSin * 200.0f * 0.5f), (yCos * (xCos * 200.0f * 0.5f)), actor->obj.rot.x, actor->obj.rot.y,
actor->obj.rot.z);
@ -2113,7 +2113,7 @@ void func_i4_80198AA0(Actor* actor) {
func_8003088C(actor);
radarMark = &gRadarMarks[actor->index];
radarMark->unk_00 = 1;
radarMark->unk_02 = actor->unk_0E4;
radarMark->unk_02 = actor->aiType;
radarMark->pos.x = actor->obj.pos.x;
radarMark->pos.y = actor->obj.pos.y;
radarMark->pos.z = actor->obj.pos.z;
@ -2137,7 +2137,7 @@ void func_i4_801995B4(Actor* actor) {
}
}
if ((actor->iwork[8] != 0) && (actor->unk_0E4 < 100)) {
if ((actor->iwork[8] != 0) && (actor->aiType < 100)) {
angle = __sinf(actor->iwork[8] * 400.0f * M_DTOR) * actor->iwork[8];
Matrix_RotateY(gGfxMatrix, M_DTOR * angle, 1);
Matrix_RotateX(gGfxMatrix, M_DTOR * angle, 1);

View File

@ -143,7 +143,7 @@ void func_i4_80199C60(Actor* missile) {
if (xDist) {}
if (zDist) {}
if (missile->unk_0E4 < 100) {
if (missile->aiType < 100) {
xDist = SIN_DEG((missile->index * 45) + gGameFrameCount) * 5000.0f;
zDist = COS_DEG((missile->index * 45) + (gGameFrameCount * 2)) * 5000.0f;
} else {
@ -186,7 +186,7 @@ void func_i4_80199FCC(Actor* actor, s32 arg1) {
Actor_Initialize(actor);
actor->obj.status = OBJ_INIT;
actor->obj.id = OBJ_ACTOR_197;
actor->unk_0E4 = 200;
actor->aiType = 200;
actor->obj.pos.x = D_i4_8019F4C0[arg1].x;
actor->obj.pos.y = D_i4_8019F4C0[arg1].y;
@ -210,7 +210,7 @@ void func_i4_8019A0F8(Actor* actor, s32 arg1) {
Actor_Initialize(actor);
actor->obj.status = OBJ_INIT;
actor->obj.id = OBJ_ACTOR_197;
actor->unk_0E4 = arg1 + 13;
actor->aiType = arg1 + 13;
actor->obj.pos.x = gActors[10].obj.pos.x + D_i4_8019F4E4[arg1].x;
actor->obj.pos.y = gActors[10].obj.pos.y + D_i4_8019F4E4[arg1].y;
@ -236,8 +236,8 @@ void func_i4_8019A1D0(void) {
actor->obj.pos.y = 4500.0f;
actor->obj.pos.z = 30000.0f;
actor->unk_0E4 = 8;
actor->unk_0E6 = 12;
actor->aiType = 8;
actor->aiIndex = 12;
actor->health = 10000;
actor->unk_0F4.y = 180.0f;
actor->state = 0;
@ -285,54 +285,54 @@ void func_i4_8019A3E8(Actor* actor) {
if (gTeamShields[1] > 0) {
if (gActors[1].iwork[2] == 0) {
if (gActors[10].obj.status == 2) {
if (gActors[1].unk_0E6 != 10) {
if (gActors[1].aiIndex != 10) {
Radio_PlayMessage(gMsg_ID_16040, RCID_FALCO);
}
gActors[1].unk_0E6 = 10;
gActors[1].aiIndex = 10;
} else {
gActors[1].unk_0E6 = 13;
gActors[1].aiIndex = 13;
}
} else {
gActors[1].unk_0E6 = -1;
gActors[1].aiIndex = -1;
}
}
if (gTeamShields[3] > 0) {
if (gActors[3].iwork[2] == 0) {
if (gActors[12].obj.status == 2) {
if (gActors[3].unk_0E6 != 12) {
if (gActors[3].aiIndex != 12) {
Radio_PlayMessage(gMsg_ID_16046, RCID_PEPPY);
}
gActors[3].unk_0E6 = 12;
gActors[3].aiIndex = 12;
} else {
gActors[3].unk_0E6 = 15;
gActors[3].aiIndex = 15;
}
} else {
gActors[3].unk_0E6 = -1;
gActors[3].aiIndex = -1;
}
}
if (D_i4_801A0564 != 0) {
if (gActors[11].obj.status == 2) {
if (gActors[8].unk_0E6 != 11) {
if (gActors[8].aiIndex != 11) {
Radio_PlayMessage(gMsg_ID_16135, RCID_KATT);
}
gActors[8].unk_0E6 = 11;
gActors[8].aiIndex = 11;
} else {
gActors[8].unk_0E6 = -1;
gActors[8].aiIndex = -1;
}
} else if (gTeamShields[2] > 0) {
if (gActors[2].iwork[2] == 0) {
if (gActors[11].obj.status == 2) {
if (gActors[2].unk_0E6 != 11) {
if (gActors[2].aiIndex != 11) {
Radio_PlayMessage(gMsg_ID_16047, RCID_SLIPPY);
}
gActors[2].unk_0E6 = 11;
gActors[2].aiIndex = 11;
} else {
gActors[2].unk_0E6 = 14;
gActors[2].aiIndex = 14;
}
} else {
gActors[2].unk_0E6 = -1;
gActors[2].aiIndex = -1;
}
}
}
@ -363,24 +363,24 @@ void func_i4_8019A3E8(Actor* actor) {
actorPtr->unk_0F4.y = actor->unk_04E * 18.0f;
actorPtr->state = 3;
actorPtr->unk_0E4 = i + 13;
actorPtr->unk_0E6 = -1;
actorPtr->aiType = i + 13;
actorPtr->aiIndex = -1;
if (D_8015F928 >= 0) {
if (((i + 13) == 23) || ((i + 13) == 24)) {
actorPtr->unk_0E6 = 2;
actorPtr->aiIndex = 2;
actorPtr->state = 2;
}
if ((i + 13) == 25) {
actorPtr->unk_0E6 = 0;
actorPtr->aiIndex = 0;
actorPtr->state = 2;
}
if (((i + 13) == 26) || ((i + 13) == 27)) {
actorPtr->unk_0E6 = 3;
actorPtr->aiIndex = 3;
actorPtr->state = 2;
}
if ((i + 13) == 28) {
actorPtr->unk_0E6 = 1;
actorPtr->aiIndex = 1;
actorPtr->state = 2;
}
}
@ -566,15 +566,15 @@ void func_i4_8019AB8C(Actor* actor) {
break;
case 6:
gActors[1].unk_0E6 = 0;
gActors[1].aiIndex = 0;
gActors[1].state = 2;
gActors[2].unk_0E6 = 0;
gActors[2].aiIndex = 0;
gActors[2].state = 2;
gActors[3].unk_0E6 = 0;
gActors[3].aiIndex = 0;
gActors[3].state = 2;
for (i = 10; i < ARRAY_COUNT(gActors); i++) {
gActors[i].unk_0E6 = -1;
gActors[i].aiIndex = -1;
gActors[i].state = 3;
}
break;
@ -588,22 +588,22 @@ void func_i4_8019AB8C(Actor* actor) {
break;
case 9780:
gActors[13].unk_0E6 = -1;
gActors[13].aiIndex = -1;
gActors[13].state = 3;
break;
case 9740:
gActors[14].unk_0E6 = -1;
gActors[14].aiIndex = -1;
gActors[14].state = 3;
break;
case 9730:
gActors[15].unk_0E6 = -1;
gActors[15].aiIndex = -1;
gActors[15].state = 3;
break;
case 9710:
gActors[16].unk_0E6 = -1;
gActors[16].aiIndex = -1;
gActors[16].state = 3;
break;
}
@ -761,12 +761,12 @@ void func_i4_8019B888(void) {
actor->obj.id = OBJ_ACTOR_197;
Object_SetInfo(&actor->info, actor->obj.id);
if (i == 0) {
actor->unk_0E4 = 1000;
actor->aiType = 1000;
} else {
actor->obj.pos.x = gPlayer[0].pos.x + D_i4_8019F5EC[i].x;
actor->obj.pos.y = gPlayer[0].pos.y + D_i4_8019F5EC[i].y;
actor->obj.pos.z = gPlayer[0].pos.z + D_i4_8019F5EC[i].z;
actor->unk_0E4 = i;
actor->aiType = i;
actor->state = 2;
actor->unk_0F4.y = 270.0f;
actor->health = 255;

View File

@ -536,8 +536,8 @@ void func_i6_80189098(Boss* boss) {
Actor_Initialize(actor);
actor->obj.status = OBJ_INIT;
actor->obj.id = OBJ_ACTOR_197;
actor->unk_0E4 = 10;
actor->unk_0E6 = 0;
actor->aiType = 10;
actor->aiIndex = 0;
actor->health = 200;
actor->obj.pos.x = 200.0f;
actor->obj.pos.y = 0.0f;
@ -550,8 +550,8 @@ void func_i6_80189098(Boss* boss) {
Actor_Initialize(actor);
actor->obj.status = OBJ_INIT;
actor->obj.id = OBJ_ACTOR_197;
actor->unk_0E4 = 10;
actor->unk_0E6 = 0;
actor->aiType = 10;
actor->aiIndex = 0;
actor->health = 200;
actor->obj.pos.x = -200.0f;
actor->obj.pos.y = 0.0f;

@ -1 +1 @@
Subproject commit d9eae785d4094ac9005c16f29977690455d13818
Subproject commit a96d89cfa6690549d7c775d247417038e9a07fbc