mirror of
https://github.com/izzy2lost/Starship.git
synced 2026-07-05 15:19:42 -07:00
Area 6 decomp, Object_408 -> boss, more overlay symbols in main (#70)
* 408 * more stuff * brutal matches * data and such * gPlayer * names and boss and such * cat * forgot something
This commit is contained in:
+335
-34
File diff suppressed because it is too large
Load Diff
+2
-2
@@ -16,8 +16,8 @@
|
||||
#define GDL(dl) gSPDisplayList(gMasterDisp++, dl) // 06000000 dl
|
||||
#define GPC(r, g, b, a) gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, r, g, b, a) // FA000000 RRGGBBAA
|
||||
#define GEC(r, g, b, a) gDPSetEnvColor(gMasterDisp++, r, g, b, a) // FB000000 RRGGBBAA
|
||||
#define GSGM_BACK(mode) gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK) // B7000000 00002000, most common geometry mode changed
|
||||
#define GCGM_BACK(mode) gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK) // B6000000 00002000
|
||||
#define GSGM_BACK() gSPSetGeometryMode(gMasterDisp++, G_CULL_BACK) // B7000000 00002000, most common geometry mode changed
|
||||
#define GCGM_BACK() gSPClearGeometryMode(gMasterDisp++, G_CULL_BACK) // B6000000 00002000
|
||||
|
||||
#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)
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
#ifndef PREVENT_BSS_REORDERING_H
|
||||
#define PREVENT_BSS_REORDERING_H
|
||||
|
||||
/**
|
||||
* To determine variable order for .bss, the compiler sorts variables by their
|
||||
* "name index" mod 256, where name index is something that, with -g, gets
|
||||
* incremented by struct and variable declarations, typedefs, and file markers,
|
||||
* among else. (Without -g, only variable declarations affects the index.)
|
||||
* This file contains enough dummy declarations to bump the index by 128.
|
||||
* Including it, or removing the include, should fix bss reordering problems
|
||||
* for a file, assuming the name index distance between its first and last bss
|
||||
* variable is at most 128.
|
||||
* Note that if a variable is declared "extern" within a header file, the name
|
||||
* index is taken at that point of the extern declaration. Thus, this include
|
||||
* must come before any such header.
|
||||
*/
|
||||
|
||||
struct Dummy0 { int x; };
|
||||
struct Dummy1 { int x; };
|
||||
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 Dummy8 { int x; };
|
||||
struct Dummy9 { int x; };
|
||||
struct Dummy10 { int x; };
|
||||
struct Dummy11 { int x; };
|
||||
struct Dummy12 { int x; };
|
||||
struct Dummy13 { int x; };
|
||||
struct Dummy14 { int x; };
|
||||
struct Dummy15 { int x; };
|
||||
struct Dummy16 { int x; };
|
||||
struct Dummy17 { int x; };
|
||||
struct Dummy18 { int x; };
|
||||
struct Dummy19 { int x; };
|
||||
struct Dummy20 { int x; };
|
||||
struct Dummy21 { int x; };
|
||||
struct Dummy22 { int x; };
|
||||
struct Dummy23 { int x; };
|
||||
struct Dummy24 { int x; };
|
||||
struct Dummy25 { int x; };
|
||||
struct Dummy26 { int x; };
|
||||
struct Dummy27 { int x; };
|
||||
struct Dummy28 { int x; };
|
||||
struct Dummy29 { int x; };
|
||||
struct Dummy30 { int x; };
|
||||
struct Dummy31 { int x; };
|
||||
struct Dummy32 { int x; };
|
||||
struct Dummy33 { int x; };
|
||||
struct Dummy34 { int x; };
|
||||
struct Dummy35 { int x; };
|
||||
struct Dummy36 { int x; };
|
||||
struct Dummy37 { int x; };
|
||||
struct Dummy38 { int x; };
|
||||
struct Dummy39 { int x; };
|
||||
struct Dummy40 { int x; };
|
||||
struct Dummy41 { int x; };
|
||||
struct Dummy42 { int x; };
|
||||
struct Dummy43 { int x; };
|
||||
struct Dummy44 { int x; };
|
||||
struct Dummy45 { int x; };
|
||||
struct Dummy46 { int x; };
|
||||
struct Dummy47 { int x; };
|
||||
struct Dummy48 { int x; };
|
||||
struct Dummy49 { int x; };
|
||||
struct Dummy50 { int x; };
|
||||
struct Dummy51 { int x; };
|
||||
struct Dummy52 { int x; };
|
||||
struct Dummy53 { int x; };
|
||||
struct Dummy54 { int x; };
|
||||
struct Dummy55 { int x; };
|
||||
struct Dummy56 { int x; };
|
||||
struct Dummy57 { int x; };
|
||||
struct Dummy58 { int x; };
|
||||
struct Dummy59 { int x; };
|
||||
struct Dummy60 { int x; };
|
||||
struct Dummy61 { int x; };
|
||||
struct Dummy62 { int x; };
|
||||
typedef int Dummy63;
|
||||
|
||||
#endif
|
||||
+43
-76
@@ -47,12 +47,12 @@ typedef enum {
|
||||
/* 1 */ COL1_1, // OBJ_80_39
|
||||
/* 2 */ COL1_2,
|
||||
/* 3 */ COL1_3, // OBJ_UNK_1000
|
||||
/* 4 */ COL1_4, // OBJ_408_308
|
||||
/* 4 */ COL1_4, // OBJ_BOSS_308
|
||||
/* 5 */ COL1_5, // OBJ_80_149
|
||||
/* 6 */ COL1_6, // OBJ_80_150
|
||||
/* 7 */ COL1_7, // OBJ_408_309
|
||||
/* 8 */ COL1_8, // OBJ_408_313
|
||||
/* 9 */ COL1_9, // OBJ_408_312
|
||||
/* 7 */ COL1_7, // OBJ_BOSS_309
|
||||
/* 8 */ COL1_8, // OBJ_BOSS_313
|
||||
/* 9 */ COL1_9, // OBJ_BOSS_312
|
||||
} CollisonId_1;
|
||||
|
||||
typedef enum {
|
||||
@@ -217,55 +217,22 @@ typedef struct {
|
||||
/* 0x05A */ s16 timer_05A;
|
||||
/* 0x05C */ s16 timer_05C;
|
||||
/* 0x05E */ u8 unk_05E;
|
||||
/* 0x05F */ char pad5F[3];
|
||||
/* 0x060 */ s16 unk_060;
|
||||
/* 0x062 */ s8 unk_062;
|
||||
/* 0x063 */ char pad63[1];
|
||||
/* 0x064 */ s16 unk_064;
|
||||
/* 0x066 */ s16 unk_066;
|
||||
/* 0x068 */ f32 unk_068;
|
||||
/* 0x06C */ Vec3f vel;
|
||||
/* 0x078 */ char pad78[0xC];
|
||||
/* 0x06C */ Vec3f vel;
|
||||
/* 0x078 */ f32 unk_078;
|
||||
/* 0x07C */ f32 unk_07C;
|
||||
/* 0x080 */ char pad80[4];
|
||||
/* 0x084 */ f32 gravity;
|
||||
/* 0x088 */ s16 unk_088;
|
||||
/* 0x08A */ s16 unk_08A;
|
||||
/* 0x08C */ char pad8C[6];
|
||||
/* 0x092 */ u16 unk_092;
|
||||
/* 0x094 */ char pad94[0x12];
|
||||
/* 0x0A6 */ s16 unk_0A6;
|
||||
/* 0x0A8 */ char padA8[6];
|
||||
/* 0x0AE */ s16 unk_0AE;
|
||||
/* 0x0B0 */ char padB0[0x16];
|
||||
/* 0x0C6 */ u16 unk_0C6;
|
||||
/* 0x0C8 */ char padC8[1];
|
||||
/* 0x0C9 */ u8 unk_0C9;
|
||||
/* 0x0CA */ char padCA[6];
|
||||
/* 0x0D0 */ s16 unk_0D0;
|
||||
/* 0x0D2 */ char padD2[4];
|
||||
/* 0x0D6 */ s16 unk_0D6;
|
||||
/* 0x0D8 */ char padD8[4];
|
||||
/* 0x0DC */ f32 unk_0DC;
|
||||
/* 0x0E0 */ f32 unk_0E0;
|
||||
/* 0x0E4 */ f32 unk_0E4;
|
||||
/* 0x0E8 */ f32 unk_0E8;
|
||||
/* 0x0EC */ f32 unk_0EC;
|
||||
/* 0x0F0 */ f32 unk_0F0;
|
||||
/* 0x0F4 */ f32 unk_0F4;
|
||||
/* 0x0F8 */ f32 unk_0F8;
|
||||
/* 0x0FC */ f32 unk_0FC;
|
||||
/* 0x100 */ Vec3f unk_100;
|
||||
/* 0x10C */ char pad10C[4];
|
||||
/* 0x110 */ f32 unk_110;
|
||||
/* 0x114 */ f32 unk_114;
|
||||
/* 0x118 */ char pad118[0x7C];
|
||||
/* 0x194 */ f32 unk_194;
|
||||
/* 0x198 */ f32 unk_198;
|
||||
/* 0x19C */ f32 unk_19C;
|
||||
/* 0x1A0 */ char pad1A0[0x168];
|
||||
/* 0x308 */ Vec3f unk_308;
|
||||
/* 0x314 */ char pad314[0xE4];
|
||||
/* 0x088 */ s16 swork[40];
|
||||
/* 0x0D8 */ f32 fwork[50];
|
||||
/* 0x1A0 */ Vec3f vwork[50];
|
||||
/* 0x3F8 */ f32 unk_3F8;
|
||||
/* 0x3FC */ Vec3f sfxPos;
|
||||
} Object_408; // size = 0x408
|
||||
} Boss; // size = 0x408
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ Object obj;
|
||||
@@ -652,36 +619,36 @@ typedef enum{
|
||||
/* 289 */ OBJ_2F4_289,
|
||||
/* 290 */ OBJ_2F4_290,
|
||||
/* 291 */ OBJ_2F4_291,
|
||||
/* 292 */ OBJ_408_292,
|
||||
/* 293 */ OBJ_408_293,
|
||||
/* 294 */ OBJ_408_294,
|
||||
/* 295 */ OBJ_408_295,
|
||||
/* 296 */ OBJ_408_296,
|
||||
/* 297 */ OBJ_408_297,
|
||||
/* 298 */ OBJ_408_298,
|
||||
/* 299 */ OBJ_408_299,
|
||||
/* 300 */ OBJ_408_300,
|
||||
/* 301 */ OBJ_408_301,
|
||||
/* 302 */ OBJ_408_302,
|
||||
/* 303 */ OBJ_408_303,
|
||||
/* 304 */ OBJ_408_304,
|
||||
/* 305 */ OBJ_408_305,
|
||||
/* 306 */ OBJ_408_306,
|
||||
/* 307 */ OBJ_408_307,
|
||||
/* 308 */ OBJ_408_308,
|
||||
/* 309 */ OBJ_408_309,
|
||||
/* 310 */ OBJ_408_310,
|
||||
/* 311 */ OBJ_408_311,
|
||||
/* 312 */ OBJ_408_312,
|
||||
/* 313 */ OBJ_408_313,
|
||||
/* 314 */ OBJ_408_314,
|
||||
/* 315 */ OBJ_408_315,
|
||||
/* 316 */ OBJ_408_316,
|
||||
/* 317 */ OBJ_408_317,
|
||||
/* 318 */ OBJ_408_318,
|
||||
/* 319 */ OBJ_408_319,
|
||||
/* 320 */ OBJ_408_320,
|
||||
/* 321 */ OBJ_408_321,
|
||||
/* 292 */ OBJ_BOSS_292,
|
||||
/* 293 */ OBJ_BOSS_293,
|
||||
/* 294 */ OBJ_BOSS_294,
|
||||
/* 295 */ OBJ_BOSS_295,
|
||||
/* 296 */ OBJ_BOSS_296,
|
||||
/* 297 */ OBJ_BOSS_297,
|
||||
/* 298 */ OBJ_BOSS_298,
|
||||
/* 299 */ OBJ_BOSS_299,
|
||||
/* 300 */ OBJ_BOSS_300,
|
||||
/* 301 */ OBJ_BOSS_301,
|
||||
/* 302 */ OBJ_BOSS_A6,
|
||||
/* 303 */ OBJ_BOSS_303,
|
||||
/* 304 */ OBJ_BOSS_304,
|
||||
/* 305 */ OBJ_BOSS_305,
|
||||
/* 306 */ OBJ_BOSS_306,
|
||||
/* 307 */ OBJ_BOSS_ZO,
|
||||
/* 308 */ OBJ_BOSS_308,
|
||||
/* 309 */ OBJ_BOSS_309,
|
||||
/* 310 */ OBJ_BOSS_310,
|
||||
/* 311 */ OBJ_BOSS_311,
|
||||
/* 312 */ OBJ_BOSS_312,
|
||||
/* 313 */ OBJ_BOSS_313,
|
||||
/* 314 */ OBJ_BOSS_314,
|
||||
/* 315 */ OBJ_BOSS_SO,
|
||||
/* 316 */ OBJ_BOSS_316,
|
||||
/* 317 */ OBJ_BOSS_317,
|
||||
/* 318 */ OBJ_BOSS_AQ,
|
||||
/* 319 */ OBJ_BOSS_319,
|
||||
/* 320 */ OBJ_BOSS_320,
|
||||
/* 321 */ OBJ_BOSS_321,
|
||||
/* 322 */ OBJ_ITEM_LASERS,
|
||||
/* 323 */ OBJ_ITEM_CHECKPOINT,
|
||||
/* 324 */ OBJ_ITEM_SILVER_RING,
|
||||
|
||||
@@ -234,7 +234,7 @@ typedef struct Player {
|
||||
/* 0x224 */ s32 timer_224;
|
||||
/* 0x228 */ s32 unk_228;
|
||||
/* 0x22C */ s32 unk_22C;
|
||||
/* 0x230 */ char pad230[4];
|
||||
/* 0x230 */ s32 unk_230;
|
||||
/* 0x234 */ s32 unk_234;
|
||||
/* 0x238 */ s32 unk_238;
|
||||
/* 0x23C */ s32 unk_23C;
|
||||
|
||||
+9
-2
@@ -401,7 +401,7 @@ extern s32 D_80161AB8;
|
||||
extern Object_80 gObjects80[50];
|
||||
extern Object_4C gObjects4C[40];
|
||||
extern Object_2F4 gObjects2F4[60];
|
||||
extern Object_408 gObjects408[4];
|
||||
extern Boss gBosses[4];
|
||||
extern Object_8C gObjects8C[100];
|
||||
extern Item gItems[20];
|
||||
extern PlayerShot gPlayerShots[16];
|
||||
@@ -820,7 +820,7 @@ extern Gfx* D_DF4260_8019A008[];
|
||||
extern f32 D_DF4260_8019A9B8[];
|
||||
|
||||
// ovl_E16C50
|
||||
extern f32 D_E16C50_801C4188;
|
||||
// extern f32 D_E16C50_801C4188; Currently externed in relevant files for bss ordering
|
||||
|
||||
// ovl_E51970
|
||||
extern Matrix D_E51970_8019EE80;
|
||||
@@ -1707,6 +1707,13 @@ extern u16 D_60447A0[];
|
||||
extern u16 D_6047550[];
|
||||
extern Gfx D_604A9F0[];
|
||||
extern Gfx D_605C230[];
|
||||
extern f32 D_6028578[];
|
||||
extern Gfx D_600F1F0[];
|
||||
extern Gfx D_6015EE0[];
|
||||
extern Gfx D_6011910[];
|
||||
extern AnimationHeader D_6018994;
|
||||
extern Limb* D_6018BA0[];
|
||||
extern Gfx D_601B2B0[];
|
||||
|
||||
// ast_9DD390, ast_A0E340, ast_BFA740, ast_CBFE70, ast_D27600
|
||||
extern Gfx D_7000000[];
|
||||
|
||||
@@ -81,7 +81,6 @@ D_800D503C = 0x800D503C; // force_migration:True
|
||||
D_800D5248 = 0x800D5248; // force_migration:True
|
||||
D_800D525C = 0x800D525C; // force_migration:True
|
||||
D_800D8560 = 0x800D8560; // force_migration:True
|
||||
D_800D55E4_fake = 0x800D55E4; // force_migration:True
|
||||
D_800D8570 = 0x800D8570; // force_migration:True
|
||||
D_800D8594 = 0x800D8594; // force_migration:True
|
||||
D_800C93EC = 0x800C93EC; // force_migration:True
|
||||
|
||||
@@ -198,7 +198,7 @@ Object_80_Draw = 0x8005D654;
|
||||
Object_4C_Draw = 0x8005D8B8;
|
||||
Object_2F4_Draw2 = 0x8005D954;
|
||||
Object_2F4_Draw1 = 0x8005DBC0;
|
||||
Object_408_Draw = 0x8005E1B8;
|
||||
Boss_Draw = 0x8005E1B8;
|
||||
Object_8C_Draw1 = 0x8005E454;
|
||||
Object_8C_Draw2 = 0x8005E538;
|
||||
Item_Draw = 0x8005E7B8;
|
||||
@@ -227,13 +227,13 @@ Object_SetInfo = 0x800612B8;
|
||||
Object_80_Initialize = 0x80061364;
|
||||
Object_4C_Initialize = 0x80061394;
|
||||
Object_2F4_Initialize = 0x800613C4;
|
||||
Object_408_Initialize = 0x80061404;
|
||||
Boss_Initialize = 0x80061404;
|
||||
Item_Initialize = 0x80061444;
|
||||
Object_8C_Initialize = 0x80061474;
|
||||
Object_80_Load = 0x800614B4;
|
||||
Object_4C_Load = 0x800615A0;
|
||||
Object_2F4_Load = 0x8006168C;
|
||||
Object_408_Load = 0x80061778;
|
||||
Boss_Load = 0x80061778;
|
||||
Item_Load = 0x80061864;
|
||||
func_80061958 = 0x80061958;
|
||||
func_80061A4C = 0x80061A4C;
|
||||
@@ -305,7 +305,7 @@ func_80069858 = 0x80069858;
|
||||
func_80069924 = 0x80069924;
|
||||
func_80069A10 = 0x80069A10;
|
||||
Object_2F4_Update = 0x80069AAC;
|
||||
Object_408_Update = 0x80069CBC;
|
||||
Boss_Update = 0x80069CBC;
|
||||
Object_80_Update = 0x80069DF4;
|
||||
Object_4C_Update = 0x80069E88;
|
||||
Item_Update = 0x80069F30;
|
||||
@@ -381,7 +381,7 @@ D_80161AB8 = 0x80161AB8;
|
||||
gObjects80 = 0x80161B00; //size:0x1900
|
||||
gObjects4C = 0x80163400; //size:0xBE0
|
||||
gObjects2F4 = 0x80163FE0; //size:0xB130
|
||||
gObjects408 = 0x8016F110; //size:0x1020
|
||||
gBosses = 0x8016F110; //size:0x1020
|
||||
gObjects8C = 0x80170130; //size:0x36B0
|
||||
gItems = 0x801737E0; //size:0x870
|
||||
gPlayerShots = 0x80174050; //size:0x700
|
||||
|
||||
@@ -49,6 +49,47 @@ func_E16C50_801915A4 = 0x801915A4;
|
||||
func_E16C50_80191BB8 = 0x80191BB8;
|
||||
D_E16C50_801C2240 = 0x801C2240;
|
||||
D_E16C50_801C4188 = 0x801C4188;
|
||||
D_E16C50_801C2250 = 0x801C2250;//size:0xA0 segment:ovl_E16C50
|
||||
D_E16C50_801C22F0 = 0x801C22F0;//size:0x40 segment:ovl_E16C50
|
||||
D_E16C50_801BF1F0 = 0x801BF1F0;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BF220 = 0x801BF220;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BF250 = 0x801BF250;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BF280 = 0x801BF280;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BF2B0 = 0x801BF2B0;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BF2E0 = 0x801BF2E0;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BF8AC = 0x801BF8AC;//size:0xC type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BF8B8 = 0x801BF8B8;//size:0xC type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BF8C4 = 0x801BF8C4;//size:0x8 type:f32 segment:ovl_E16C50
|
||||
D_E16C50_801BED10 = 0x801BED10;//size:0xC type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BED1C = 0x801BED1C;//size:0xC type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BED70 = 0x801BED70;//size:0x90 type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BEE00 = 0x801BEE00;//size:0x90 type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BEEF0 = 0x801BEEF0;//size:0x90 type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BEF80 = 0x801BEF80;//size:0x90 type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BF070 = 0x801BF070;//size:0x90 type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BF100 = 0x801BF100;//size:0x90 type:Vec3f segment:ovl_E16C50
|
||||
D_E16C50_801BF190 = 0x801BF190;//size:0x30 type:f32 segment:ovl_E16C50
|
||||
|
||||
D_E16C50_801C2330 = 0x801C2330;//segment:ovl_E16C50 type:s32 size:0xA0
|
||||
D_E16C50_801C23D0 = 0x801C23D0;//segment:ovl_E16C50 type:s32 size:0x118
|
||||
D_E16C50_801C24E8 = 0x801C24E8;//segment:ovl_E16C50 type:f32 size:0x258
|
||||
|
||||
D_E16C50_801C27C8 = 0x801C27C8; //segment:ovl_E16C50 size:0x12C0
|
||||
D_E16C50_801C3A88 = 0x801C3A88; //segment:ovl_E16C50 size:0x700
|
||||
D_E16C50_801C4190 = 0x801C4190; //segment:ovl_E16C50 size:0x28
|
||||
D_E16C50_801C41B8 = 0x801C41B8; //segment:ovl_E16C50 size:0x78
|
||||
D_E16C50_801C4230 = 0x801C4230; //segment:ovl_E16C50 size:0x70
|
||||
D_E16C50_801C42A0 = 0x801C42A0; //segment:ovl_E16C50 size:0x68
|
||||
D_E16C50_801C4308 = 0x801C4308; //segment:ovl_E16C50 size:0x148
|
||||
D_E16C50_801C0060 = 0x801C0060; //segment:ovl_E16C50 type:f32
|
||||
D_E16C50_801BFE14 = 0x801BFE14; //segment:ovl_E16C50 type:s32
|
||||
D_E16C50_801C0264 = 0x801C0264; //segment:ovl_E16C50 type:s32
|
||||
D_E16C50_801C02C8 = 0x801C02C8; //segment:ovl_E16C50 type:f32
|
||||
D_E16C50_801C02D0 = 0x801C02D0; //segment:ovl_E16C50 type:s32
|
||||
D_E16C50_801C0130 = 0x801C0130; //segment:ovl_E16C50 ignore:True
|
||||
D_E16C50_801C2740 = 0x801C2740; //segment:ovl_E16C50 size:0x28
|
||||
D_E16C50_801C2768 = 0x801C2768; //segment:ovl_E16C50 size:0x38
|
||||
D_E16C50_801C27A0 = 0x801C27A0; //segment:ovl_E16C50 size:0x20
|
||||
|
||||
func_E51970_80198594 = 0x80198594;
|
||||
func_E51970_80193CA4 = 0x80193CA4;
|
||||
|
||||
+72
-75
@@ -1,8 +1,5 @@
|
||||
#include "global.h"
|
||||
|
||||
// placeholder for ambiguous overlay function
|
||||
void func_80187520(s32, void*);
|
||||
|
||||
typedef struct {
|
||||
s32 unk_00;
|
||||
char unk_04[0x2F0];
|
||||
@@ -110,36 +107,36 @@ void func_8002E548(void) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_8002E5E0(Object_408* obj408) {
|
||||
func_80187520(0x5B, obj408);
|
||||
void func_8002E5E0(Boss* boss) {
|
||||
func_E51970_80187520(91, boss);
|
||||
}
|
||||
|
||||
void func_8002E604(Object_408* obj408) {
|
||||
func_80187520(0x5C, obj408);
|
||||
void func_8002E604(Boss* boss) {
|
||||
func_E51970_80187520(92, boss);
|
||||
}
|
||||
|
||||
void func_8002E628(Object_408* obj408) {
|
||||
func_80187520(0x5D, obj408);
|
||||
void func_8002E628(Boss* boss) {
|
||||
func_E51970_80187520(93, boss);
|
||||
}
|
||||
|
||||
void func_8002E64C(Object_408* obj408) {
|
||||
func_80187520(0x5E, obj408);
|
||||
void func_8002E64C(Boss* boss) {
|
||||
func_E51970_80187520(94, boss);
|
||||
}
|
||||
|
||||
void func_8002E670(Object_2F4* obj408) {
|
||||
func_80187520(0x5F, obj408);
|
||||
void func_8002E670(Object_2F4* obj2F4) {
|
||||
func_E51970_80187520(95, obj2F4);
|
||||
}
|
||||
|
||||
void func_8002E694(Object_2F4* obj408) {
|
||||
func_80187520(0x60, obj408);
|
||||
void func_8002E694(Object_2F4* obj2F4) {
|
||||
func_E51970_80187520(96, obj2F4);
|
||||
}
|
||||
|
||||
void func_8002E6B8(Object_2F4* obj408) {
|
||||
func_80187520(0x61, obj408);
|
||||
void func_8002E6B8(Object_2F4* obj2F4) {
|
||||
func_E51970_80187520(97, obj2F4);
|
||||
}
|
||||
|
||||
void func_8002E6DC(Object_2F4* obj408) {
|
||||
func_80187520(0x62, obj408);
|
||||
void func_8002E6DC(Object_2F4* obj2F4) {
|
||||
func_E51970_80187520(98, obj2F4);
|
||||
}
|
||||
|
||||
void func_8002E700(Player* player) {
|
||||
@@ -470,22 +467,22 @@ void func_8002F69C(Object_2F4* obj2F4) {
|
||||
if (D_8015F928 == D_800C9B4C) {
|
||||
func_8002F3E0();
|
||||
obj2F4->unk_0B8 = 3;
|
||||
gPlayer->state_1C8 = PLAYERSTATE_1C8_0;
|
||||
gPlayer[0].state_1C8 = PLAYERSTATE_1C8_0;
|
||||
if ((gCurrentLevel == LEVEL_VENOM_2) || (gCurrentLevel == LEVEL_BOLSE)) {
|
||||
gPlayer->unk_034 = 20.0f;
|
||||
gPlayer[0].unk_034 = 20.0f;
|
||||
}
|
||||
func_8001D444(0, 0x802B, 0, 0xFF);
|
||||
func_8002EE34();
|
||||
if ((gCurrentLevel == LEVEL_FORTUNA) || (gCurrentLevel == LEVEL_VENOM_2)) {
|
||||
gPlayer->camEye.x = 4500.0f;
|
||||
gPlayer[0].camEye.x = 4500.0f;
|
||||
} else if (gCurrentLevel == LEVEL_BOLSE) {
|
||||
gPlayer->camEye.x = 5500.0f;
|
||||
gPlayer[0].camEye.x = 5500.0f;
|
||||
}
|
||||
gPlayer->camEye.y = 2500.0f;
|
||||
gPlayer->camEye.z = 5000.0f;
|
||||
gPlayer->camAt.x = gObjects2F4[4].obj.pos.x;
|
||||
gPlayer->camAt.y = gObjects2F4[4].obj.pos.y;
|
||||
gPlayer->camAt.z = gObjects2F4[4].obj.pos.z;
|
||||
gPlayer[0].camEye.y = 2500.0f;
|
||||
gPlayer[0].camEye.z = 5000.0f;
|
||||
gPlayer[0].camAt.x = gObjects2F4[4].obj.pos.x;
|
||||
gPlayer[0].camAt.y = gObjects2F4[4].obj.pos.y;
|
||||
gPlayer[0].camAt.z = gObjects2F4[4].obj.pos.z;
|
||||
}
|
||||
if (D_8015F928 > D_800C9B4C) {
|
||||
if (D_8015F908 == 0) {
|
||||
@@ -611,9 +608,9 @@ bool func_8002FE74(void) {
|
||||
case LEVEL_FORTUNA:
|
||||
return D_8015F928 == D_800C9B4C + 2400;
|
||||
case LEVEL_BOLSE:
|
||||
return gObjects408[2].unk_0D0 == 4;
|
||||
return gBosses[2].swork[36] == 4;
|
||||
case LEVEL_KATINA:
|
||||
return gObjects408[1].unk_0A6 == 2;
|
||||
return gBosses[1].swork[15] == 2;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -655,11 +652,11 @@ void func_8002FEF0(Object_2F4* arg0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_3) && (D_8015F910 == 0)) {
|
||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (D_8015F910 == 0)) {
|
||||
if (D_8015F90C != 0) {
|
||||
D_8015F90C--;
|
||||
}
|
||||
if ((gPlayer->shields < 64) || func_8002FE74() || (D_8015F90C == 1)) {
|
||||
if ((gPlayer[0].shields < 64) || func_8002FE74() || (D_8015F90C == 1)) {
|
||||
D_80161690 = 60;
|
||||
D_8015F910 = 1;
|
||||
}
|
||||
@@ -667,7 +664,7 @@ void func_8002FEF0(Object_2F4* arg0) {
|
||||
}
|
||||
|
||||
void func_8003010C(Object_2F4* obj2F4) {
|
||||
if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer->state_1C8 == PLAYERSTATE_1C8_6)) {
|
||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_4) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_6)) {
|
||||
Object_Kill(&obj2F4->obj, &obj2F4->sfxPos);
|
||||
return;
|
||||
}
|
||||
@@ -693,7 +690,7 @@ void func_8003010C(Object_2F4* obj2F4) {
|
||||
}
|
||||
|
||||
s32 func_800301F4(Object_2F4* obj2F4) {
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
f32 temp_ft4;
|
||||
f32 temp_ft5;
|
||||
s32 i;
|
||||
@@ -720,11 +717,11 @@ s32 func_800301F4(Object_2F4* obj2F4) {
|
||||
}
|
||||
}
|
||||
}
|
||||
obj408 = gObjects408;
|
||||
if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(obj408->obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 2000.0f) &&
|
||||
(fabsf(obj408->obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 2000.0f)) {
|
||||
if (fabsf(obj408->obj.pos.y - obj2F4->obj.pos.y) < 1500.0f) {
|
||||
if (obj408->obj.pos.y < obj2F4->obj.pos.y) {
|
||||
boss = &gBosses[0];
|
||||
if ((gCurrentLevel == LEVEL_SECTOR_Z) && (fabsf(boss->obj.pos.x - (obj2F4->obj.pos.x + temp_ft4)) < 2000.0f) &&
|
||||
(fabsf(boss->obj.pos.z - (obj2F4->obj.pos.z + temp_ft5)) < 2000.0f)) {
|
||||
if (fabsf(boss->obj.pos.y - obj2F4->obj.pos.y) < 1500.0f) {
|
||||
if (boss->obj.pos.y < obj2F4->obj.pos.y) {
|
||||
return 1;
|
||||
} else {
|
||||
return -1;
|
||||
@@ -743,10 +740,10 @@ s32 func_8003049C(Object_2F4* arg0) {
|
||||
f32 temp_fa0;
|
||||
f32 temp_ft4;
|
||||
f32 var_ft5;
|
||||
Object_408* obj408 = &gObjects408[0];
|
||||
Boss* boss = &gBosses[0];
|
||||
s32 pad[4];
|
||||
|
||||
if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
return 0;
|
||||
}
|
||||
if ((gLevelType == LEVELTYPE_SPACE) && (gCurrentLevel != LEVEL_BOLSE)) {
|
||||
@@ -770,18 +767,18 @@ s32 func_8003049C(Object_2F4* arg0) {
|
||||
var_ft5 = 720.0f;
|
||||
}
|
||||
|
||||
if (obj408->obj.id == OBJ_408_293) {
|
||||
if (boss->obj.id == OBJ_BOSS_293) {
|
||||
var_ft5 = 350.0f;
|
||||
} else if (obj408->obj.id == OBJ_408_309) {
|
||||
} else if (boss->obj.id == OBJ_BOSS_309) {
|
||||
sp44 = 2000.0f;
|
||||
var_ft5 = 750.0f;
|
||||
} else if (obj408->obj.id == OBJ_408_317) {
|
||||
} else if (boss->obj.id == OBJ_BOSS_317) {
|
||||
sp44 = 1500.0f;
|
||||
var_ft5 = 700.0f;
|
||||
}
|
||||
if ((fabsf(obj408->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < sp44) &&
|
||||
(fabsf(obj408->obj.pos.z - (arg0->obj.pos.z + temp_ft4)) < sp44) &&
|
||||
(fabsf(obj408->obj.pos.y - arg0->obj.pos.y) < var_ft5)) {
|
||||
if ((fabsf(boss->obj.pos.x - (arg0->obj.pos.x + temp_fa0)) < sp44) &&
|
||||
(fabsf(boss->obj.pos.z - (arg0->obj.pos.z + temp_ft4)) < sp44) &&
|
||||
(fabsf(boss->obj.pos.y - arg0->obj.pos.y) < var_ft5)) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
@@ -812,7 +809,7 @@ void func_8003088C(Object_2F4* arg0) {
|
||||
if (arg0->unk_0D0 != 0) {
|
||||
var_a1 = false;
|
||||
if ((arg0->unk_0B6 == 3) ||
|
||||
((gCurrentLevel == LEVEL_BOLSE) && (gObjects408[1].obj.status != 0) && (arg0->unk_0E4 >= 4)) ||
|
||||
((gCurrentLevel == LEVEL_BOLSE) && (gBosses[1].obj.status != 0) && (arg0->unk_0E4 >= 4)) ||
|
||||
((gCurrentLevel == LEVEL_VENOM_2) && (arg0->unk_0E4 >= 4) && (arg0->unk_0E4 < 10) &&
|
||||
(arg0->unk_0D0 == 2))) {
|
||||
arg0->unk_0D6 = 0;
|
||||
@@ -1129,10 +1126,10 @@ void func_8003088C(Object_2F4* arg0) {
|
||||
}
|
||||
|
||||
void func_80031858(Object_2F4* obj2F4) {
|
||||
if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->unk_0B0 != 0) &&
|
||||
(fabsf(obj2F4->obj.pos.x - gPlayer->pos.x) < 1000.0f) &&
|
||||
(fabsf(obj2F4->obj.pos.y - gPlayer->pos.y) < 1000.0f) &&
|
||||
(fabsf(obj2F4->obj.pos.z - gPlayer->unk_138) < 1000.0f)) {
|
||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_3) && (obj2F4->unk_0B0 != 0) &&
|
||||
(fabsf(obj2F4->obj.pos.x - gPlayer[0].pos.x) < 1000.0f) &&
|
||||
(fabsf(obj2F4->obj.pos.y - gPlayer[0].pos.y) < 1000.0f) &&
|
||||
(fabsf(obj2F4->obj.pos.z - gPlayer[0].unk_138) < 1000.0f)) {
|
||||
obj2F4->unk_078++;
|
||||
} else {
|
||||
obj2F4->unk_078 = 0;
|
||||
@@ -1284,7 +1281,7 @@ void func_800319AC(Object_2F4* this) {
|
||||
case 8:
|
||||
break;
|
||||
case 1:
|
||||
if (gPlayer->shields < (Play_GetMaxShields() / 2)) {
|
||||
if (gPlayer[0].shields < (Play_GetMaxShields() / 2)) {
|
||||
func_800BA808(gMsg_ID_20298, RCID_FALCO);
|
||||
} else if (Rand_ZeroOne() < 0.5f) {
|
||||
func_800BA808(gMsg_ID_20280, RCID_FALCO);
|
||||
@@ -1293,7 +1290,7 @@ void func_800319AC(Object_2F4* this) {
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (gPlayer->shields < (Play_GetMaxShields() / 2)) {
|
||||
if (gPlayer[0].shields < (Play_GetMaxShields() / 2)) {
|
||||
func_800BA808(gMsg_ID_20297, RCID_SLIPPY);
|
||||
} else if (Rand_ZeroOne() < 0.5f) {
|
||||
func_800BA808(gMsg_ID_20282, RCID_SLIPPY);
|
||||
@@ -1302,7 +1299,7 @@ void func_800319AC(Object_2F4* this) {
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (gPlayer->shields < (Play_GetMaxShields() / 2)) {
|
||||
if (gPlayer[0].shields < (Play_GetMaxShields() / 2)) {
|
||||
func_800BA808(gMsg_ID_20296, RCID_PEPPY);
|
||||
} else if (Rand_ZeroOne() < 0.5f) {
|
||||
func_800BA808(gMsg_ID_20281, RCID_PEPPY);
|
||||
@@ -1376,7 +1373,7 @@ void func_800319AC(Object_2F4* this) {
|
||||
sp104 = 1;
|
||||
break;
|
||||
case 0:
|
||||
if (gPlayer->state_1C8 != PLAYERSTATE_1C8_9) {
|
||||
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_9) {
|
||||
this->unk_114 = this->unk_118 = 40.0f;
|
||||
if (gObjects2F4->unk_0B8 == 5) {
|
||||
Math_SmoothStepToF(&this->unk_0F4.x, 30.0f, 0.1f, 0.5f, 0.0f);
|
||||
@@ -1439,8 +1436,8 @@ void func_800319AC(Object_2F4* this) {
|
||||
}
|
||||
if (this->unk_0E6 == 0) {
|
||||
if (gCurrentLevel != LEVEL_VENOM_2) {
|
||||
if (((gPlayer->unk_4DC != 0) && (this->unk_060 > 10)) ||
|
||||
((gCurrentLevel == LEVEL_BOLSE) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_0))) {
|
||||
if (((gPlayer[0].unk_4DC != 0) && (this->unk_060 > 10)) ||
|
||||
((gCurrentLevel == LEVEL_BOLSE) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0))) {
|
||||
this->unk_0B8 = 3;
|
||||
this->unk_04E = 300;
|
||||
this->timer_0BC = 160;
|
||||
@@ -1448,7 +1445,7 @@ void func_800319AC(Object_2F4* this) {
|
||||
func_8002F5F4(gMsg_ID_9369, RCID_WOLF);
|
||||
}
|
||||
break;
|
||||
} else if ((this->unk_060 > 200) && (gPlayer->timer_224 != 0)) {
|
||||
} else if ((this->unk_060 > 200) && (gPlayer[0].timer_224 != 0)) {
|
||||
this->unk_060 = 100;
|
||||
break;
|
||||
}
|
||||
@@ -1459,15 +1456,15 @@ void func_800319AC(Object_2F4* this) {
|
||||
spC8 = __cosf(((this->index * 45) + (gFrameCount * 2)) * M_DTOR) * 100.0f;
|
||||
spC4 = __sinf(((this->index * 45) + gFrameCount) * M_DTOR) * 100.0f;
|
||||
}
|
||||
if (gPlayer->unk_4DC == 0) {
|
||||
this->unk_124.x = gPlayer->pos.x + spCC;
|
||||
this->unk_124.y = gPlayer->pos.y + spC8;
|
||||
this->unk_124.z = gPlayer->unk_138 + spC4;
|
||||
this->unk_118 = gPlayer->unk_0D0 + 10.0f;
|
||||
if (gPlayer[0].unk_4DC == 0) {
|
||||
this->unk_124.x = gPlayer[0].pos.x + spCC;
|
||||
this->unk_124.y = gPlayer[0].pos.y + spC8;
|
||||
this->unk_124.z = gPlayer[0].unk_138 + spC4;
|
||||
this->unk_118 = gPlayer[0].unk_0D0 + 10.0f;
|
||||
}
|
||||
if ((gObjects2F4->unk_0B8 == 6) && (this->unk_0E4 < 4)) {
|
||||
this->unk_120 = 3.0f;
|
||||
this->unk_118 = gPlayer->unk_0D0 - 5.0f;
|
||||
this->unk_118 = gPlayer[0].unk_0D0 - 5.0f;
|
||||
this->unk_07C = 2;
|
||||
} else if ((gCurrentLevel == LEVEL_VENOM_2) && (this->unk_0E4 >= 4)) {
|
||||
this->unk_120 = 1.6f;
|
||||
@@ -1506,9 +1503,9 @@ void func_800319AC(Object_2F4* this) {
|
||||
this->unk_120 = 1.4f;
|
||||
}
|
||||
} else {
|
||||
this->unk_124.x = gObjects408->obj.pos.x;
|
||||
this->unk_124.y = gObjects408->obj.pos.y + 400.0f;
|
||||
this->unk_124.z = gObjects408->obj.pos.z;
|
||||
this->unk_124.x = gBosses[0].obj.pos.x;
|
||||
this->unk_124.y = gBosses[0].obj.pos.y + 400.0f;
|
||||
this->unk_124.z = gBosses[0].obj.pos.z;
|
||||
this->unk_118 = 40.0f;
|
||||
}
|
||||
if ((this->unk_0E6 >= 0) && (this->unk_0E6 != 100) && (gObjects2F4->unk_0B8 != 6)) {
|
||||
@@ -1517,9 +1514,9 @@ void func_800319AC(Object_2F4* this) {
|
||||
if (this->unk_0E6 != 0) {
|
||||
this->unk_118 = gObjects2F4[this->unk_0E6].unk_114 - 5.0f;
|
||||
} else {
|
||||
this->unk_118 = gPlayer->unk_0D0 - 5.0f;
|
||||
if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_5) &&
|
||||
(gPlayer->unk_4D8 > 100.0f)) {
|
||||
this->unk_118 = gPlayer[0].unk_0D0 - 5.0f;
|
||||
if ((gCurrentLevel == LEVEL_VENOM_2) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_5) &&
|
||||
(gPlayer[0].unk_4D8 > 100.0f)) {
|
||||
this->unk_090 = 8;
|
||||
}
|
||||
}
|
||||
@@ -1774,7 +1771,7 @@ void func_800319AC(Object_2F4* this) {
|
||||
spE0 = 0.0f;
|
||||
}
|
||||
spDC = (Rand_ZeroOne() - 0.5f) * 10000.0f;
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_0)) {
|
||||
if ((gCurrentLevel == LEVEL_KATINA) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0)) {
|
||||
spE4 = (Rand_ZeroOne() - 0.5f) * 5000.0f;
|
||||
spDC = (Rand_ZeroOne() - 0.5f) * 5000.0f;
|
||||
}
|
||||
@@ -2129,9 +2126,9 @@ void func_80035098(Object_2F4* obj2F4) {
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -30.0f, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, -obj2F4->obj.rot.z * M_DTOR, 1);
|
||||
Matrix_RotateX(gGfxMatrix, -obj2F4->obj.rot.x * M_DTOR, 1);
|
||||
Matrix_RotateY(gGfxMatrix, -obj2F4->obj.rot.y * (0, M_DTOR) - gPlayer->unk_058, 1); // fake
|
||||
Matrix_RotateX(gGfxMatrix, gPlayer->unk_05C, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, obj2F4->unk_08C * (gFrameCount * 20.0f) * M_DTOR, 1);
|
||||
Matrix_RotateY(gGfxMatrix, M_DTOR * -obj2F4->obj.rot.y - gPlayer[0].unk_058, 1);
|
||||
Matrix_RotateX(gGfxMatrix, gPlayer[0].unk_05C, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, gFrameCount * 20.0f * (*obj2F4).unk_08C * M_DTOR, 1);
|
||||
if (obj2F4->unk_08C < 0) {
|
||||
Matrix_RotateX(gGfxMatrix, M_PI, 1);
|
||||
}
|
||||
|
||||
+11
-11
@@ -9,7 +9,7 @@ s32 D_800C9E90[28] = {
|
||||
|
||||
const f32 D_800D55D0[] = { 6000.0f, 18000.0f, -6000.0f, -18000.0f };
|
||||
|
||||
void func_80042EC0(Object_408* obj408) {
|
||||
void func_80042EC0(Boss* boss) {
|
||||
s32 var_a3;
|
||||
f32 var_fv0;
|
||||
|
||||
@@ -26,33 +26,33 @@ void func_80042EC0(Object_408* obj408) {
|
||||
}
|
||||
if (var_a3 != 0) {
|
||||
var_fv0 = 0.0f;
|
||||
if (obj408->obj.id == OBJ_408_292) {
|
||||
if (boss->obj.id == OBJ_BOSS_292) {
|
||||
var_fv0 = 300.0f;
|
||||
} else if (obj408->obj.id == OBJ_408_306) {
|
||||
} else if (boss->obj.id == OBJ_BOSS_306) {
|
||||
var_fv0 = 200.0f;
|
||||
}
|
||||
func_80077240(obj408->obj.pos.x, obj408->obj.pos.y + var_fv0, obj408->obj.pos.z, var_a3);
|
||||
func_80077240(boss->obj.pos.x, boss->obj.pos.y + var_fv0, boss->obj.pos.z, var_a3);
|
||||
}
|
||||
gHitCount += var_a3 + 1;
|
||||
D_80177850 = 0xF;
|
||||
D_80177850 = 15;
|
||||
}
|
||||
|
||||
void func_80042FAC(Object_408* obj408) {
|
||||
void func_80042FAC(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_80042FB8(Object_408* obj408) {
|
||||
void func_80042FB8(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_80042FC4(Object_408* obj408) {
|
||||
void func_80042FC4(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_80042FD0(Object_408* obj408) {
|
||||
void func_80042FD0(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_80042FDC(Object_408* obj408) {
|
||||
void func_80042FDC(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_80042FE8(Object_408* obj408) {
|
||||
void func_80042FE8(Boss* boss) {
|
||||
}
|
||||
|
||||
void func_80042FF4(Object_2F4* obj2F4, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8,
|
||||
|
||||
+21
-20
@@ -1,25 +1,26 @@
|
||||
#include "global.h"
|
||||
#include "prevent_bss_reordering.h"
|
||||
|
||||
static f32 __dx1;
|
||||
static f32 __dx2;
|
||||
static f32 __dy1;
|
||||
static f32 __dy2;
|
||||
static f32 __dz1;
|
||||
static f32 __dz2;
|
||||
static f32 __vtx0_x;
|
||||
static f32 __vtx0_y;
|
||||
static f32 __vtx0_z;
|
||||
static f32 __vtx1_x;
|
||||
static f32 __vtx1_y;
|
||||
static f32 __vtx1_z;
|
||||
static f32 __vtx2_x;
|
||||
static f32 __vtx2_y;
|
||||
static f32 __vtx2_z;
|
||||
static f32 __vtx3_x;
|
||||
static f32 __vtx3_y;
|
||||
static f32 __vtx3_z;
|
||||
static f32 __pos_x;
|
||||
static f32 __pos_z;
|
||||
f32 __dx1;
|
||||
f32 __dx2;
|
||||
f32 __dy1;
|
||||
f32 __dy2;
|
||||
f32 __dz1;
|
||||
f32 __dz2;
|
||||
f32 __vtx0_x;
|
||||
f32 __vtx0_y;
|
||||
f32 __vtx0_z;
|
||||
f32 __vtx1_x;
|
||||
f32 __vtx1_y;
|
||||
f32 __vtx1_z;
|
||||
f32 __vtx2_x;
|
||||
f32 __vtx2_y;
|
||||
f32 __vtx2_z;
|
||||
f32 __vtx3_x;
|
||||
f32 __vtx3_y;
|
||||
f32 __vtx3_z;
|
||||
f32 __pos_x;
|
||||
f32 __pos_z;
|
||||
|
||||
#define TRINORM_X(A, B, C) ((B##_y - A##_y) * (C##_z - B##_z) - (B##_z - A##_z) * (C##_y - B##_y))
|
||||
#define TRINORM_Y(A, B, C) ((B##_z - A##_z) * (C##_x - B##_x) - (B##_x - A##_x) * (C##_z - B##_z))
|
||||
|
||||
+63
-63
@@ -478,7 +478,7 @@ bool func_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
|
||||
sp7C.z = obj->pos.z - shot->obj.pos.z;
|
||||
// undefined behavior: if this check fails, the function returns no value
|
||||
if (((fabsf(sp7C.x) < 1100.0f) && (fabsf(sp7C.z) < 1100.0f) && (shot->obj.pos.y < 900.0f)) ||
|
||||
(objId == OBJ_408_313) || (objId == OBJ_UNK_1000) || (objId == OBJ_80_39)) {
|
||||
(objId == OBJ_BOSS_313) || (objId == OBJ_UNK_1000) || (objId == OBJ_80_39)) {
|
||||
Matrix_RotateY(gCalcMatrix, -obj->rot.y * M_DTOR, 0);
|
||||
sp7C.x = shot->obj.pos.x - obj->pos.x;
|
||||
sp7C.y = shot->obj.pos.y - obj->pos.y;
|
||||
@@ -510,19 +510,19 @@ bool func_8003774C(PlayerShot* shot, ObjectId objId, Object* obj) {
|
||||
case OBJ_80_150:
|
||||
objId = COL1_6;
|
||||
break;
|
||||
case OBJ_408_308:
|
||||
case OBJ_BOSS_308:
|
||||
objId = COL1_4;
|
||||
break;
|
||||
case OBJ_408_312:
|
||||
case OBJ_BOSS_312:
|
||||
objId = COL1_9;
|
||||
break;
|
||||
case OBJ_408_309:
|
||||
case OBJ_BOSS_309:
|
||||
objId = COL1_7;
|
||||
break;
|
||||
case OBJ_UNK_1000:
|
||||
objId = COL1_3;
|
||||
break;
|
||||
case OBJ_408_313:
|
||||
case OBJ_BOSS_313:
|
||||
objId = COL1_8;
|
||||
break;
|
||||
case OBJ_80_39:
|
||||
@@ -723,7 +723,7 @@ void func_80038140(PlayerShot* shot) {
|
||||
Vec3f sp88;
|
||||
Vec3f sp7C;
|
||||
Object_2F4* obj2F4;
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
Object_58* obj58;
|
||||
Object_4C* obj4C;
|
||||
Object_80* obj80;
|
||||
@@ -937,78 +937,78 @@ void func_80038140(PlayerShot* shot) {
|
||||
}
|
||||
}
|
||||
}
|
||||
for (i = 0, obj408 = gObjects408; i < 4; i++, obj408++) {
|
||||
if ((obj408->obj.status == 2) && (obj408->timer_05A == 0)) {
|
||||
if ((obj408->obj.id == OBJ_408_308) || (obj408->obj.id == OBJ_408_312) || (obj408->obj.id == OBJ_408_309) ||
|
||||
(obj408->obj.id == OBJ_408_313)) {
|
||||
func_8003774C(shot, obj408->obj.id, &obj408->obj);
|
||||
} else if (obj408->obj.id == OBJ_408_310) {
|
||||
temp_fv1 = fabsf(obj408->obj.pos.x - shot->obj.pos.x) * .8333333f;
|
||||
temp_fa0 = fabsf(obj408->obj.pos.y - shot->obj.pos.y) * 2;
|
||||
temp_fv0 = fabsf(obj408->obj.pos.z - shot->obj.pos.z) * 0.8333333f;
|
||||
for (i = 0, boss = gBosses; i < 4; i++, boss++) {
|
||||
if ((boss->obj.status == 2) && (boss->timer_05A == 0)) {
|
||||
if ((boss->obj.id == OBJ_BOSS_308) || (boss->obj.id == OBJ_BOSS_312) || (boss->obj.id == OBJ_BOSS_309) ||
|
||||
(boss->obj.id == OBJ_BOSS_313)) {
|
||||
func_8003774C(shot, boss->obj.id, &boss->obj);
|
||||
} else if (boss->obj.id == OBJ_BOSS_310) {
|
||||
temp_fv1 = fabsf(boss->obj.pos.x - shot->obj.pos.x) * .8333333f;
|
||||
temp_fa0 = fabsf(boss->obj.pos.y - shot->obj.pos.y) * 2;
|
||||
temp_fv0 = fabsf(boss->obj.pos.z - shot->obj.pos.z) * 0.8333333f;
|
||||
if (sqrtf(SQ(temp_fv1) + SQ(temp_fa0) + SQ(temp_fv0)) < 1500.0f) {
|
||||
if (shot->obj.id == PLAYERSHOT_4) {
|
||||
Object_Kill(&shot->obj, &shot->sfxPos);
|
||||
} else {
|
||||
obj408->unk_062 = 1;
|
||||
boss->unk_062 = 1;
|
||||
func_80036318(shot);
|
||||
Audio_PlaySfx(0x29001062, &shot->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (obj408->obj.id == OBJ_408_316) {
|
||||
temp_fv1 = fabsf(obj408->obj.pos.x - shot->obj.pos.x);
|
||||
temp_fa0 = fabsf(obj408->obj.pos.y - 300.0f - shot->obj.pos.y) * 7.42f;
|
||||
temp_fv0 = fabsf(obj408->obj.pos.z - shot->obj.pos.z);
|
||||
if (boss->obj.id == OBJ_BOSS_316) {
|
||||
temp_fv1 = fabsf(boss->obj.pos.x - shot->obj.pos.x);
|
||||
temp_fa0 = fabsf(boss->obj.pos.y - 300.0f - shot->obj.pos.y) * 7.42f;
|
||||
temp_fv0 = fabsf(boss->obj.pos.z - shot->obj.pos.z);
|
||||
if (sqrtf(SQ(temp_fv1) + SQ(temp_fa0) + SQ(temp_fv0)) < 2700.0f) {
|
||||
if (shot->obj.id == PLAYERSHOT_4) {
|
||||
Object_Kill(&shot->obj, &shot->sfxPos);
|
||||
} else {
|
||||
obj408->unk_062 = 1;
|
||||
obj408->unk_066 = 100;
|
||||
boss->unk_062 = 1;
|
||||
boss->unk_066 = 100;
|
||||
Audio_PlaySfx(0x29121007, &shot->sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
|
||||
func_80036318(shot);
|
||||
}
|
||||
}
|
||||
}
|
||||
temp_v0 = func_80036874(shot, obj408->info.hitbox, &obj408->obj);
|
||||
temp_v0 = func_80036874(shot, boss->info.hitbox, &boss->obj);
|
||||
if (temp_v0 != 0) {
|
||||
if (shot->obj.id == PLAYERSHOT_4) {
|
||||
Object_Kill(&shot->obj, &shot->sfxPos);
|
||||
} else if (!((obj408->obj.id == OBJ_408_316) && (shot->playerNum != 0))) {
|
||||
obj408->unk_062 = 1;
|
||||
} else if (!((boss->obj.id == OBJ_BOSS_316) && (shot->playerNum != 0))) {
|
||||
boss->unk_062 = 1;
|
||||
if (shot->obj.id == PLAYERSHOT_3) {
|
||||
obj408->unk_062 = -1;
|
||||
obj408->unk_064 = 20;
|
||||
boss->unk_062 = -1;
|
||||
boss->unk_064 = 20;
|
||||
} else if (shot->obj.id == PLAYERSHOT_8) {
|
||||
if (gCurrentLevel == LEVEL_AQUAS) {
|
||||
obj408->unk_064 = 31;
|
||||
boss->unk_064 = 31;
|
||||
} else {
|
||||
obj408->unk_064 = 30;
|
||||
boss->unk_064 = 30;
|
||||
}
|
||||
} else {
|
||||
obj408->unk_064 = 10;
|
||||
boss->unk_064 = 10;
|
||||
if (shot->playerNum < 4) {
|
||||
switch (gLaserStrength[shot->playerNum]) {
|
||||
case LASERS_SINGLE:
|
||||
case LASERS_TWIN:
|
||||
break;
|
||||
case LASERS_HYPER:
|
||||
obj408->unk_064 = 15;
|
||||
boss->unk_064 = 15;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (obj408->obj.id == OBJ_408_314) {
|
||||
obj408->unk_0AE = shot->playerNum;
|
||||
if (boss->obj.id == OBJ_BOSS_314) {
|
||||
boss->swork[19] = shot->playerNum;
|
||||
}
|
||||
obj408->unk_066 = temp_v0 - 1;
|
||||
if (obj408->obj.id == OBJ_408_301) {
|
||||
obj408->unk_092 = shot->obj.id;
|
||||
} else if (obj408->obj.id == OBJ_408_319) {
|
||||
obj408->unk_194 = shot->obj.pos.x;
|
||||
obj408->unk_198 = shot->obj.pos.y;
|
||||
obj408->unk_19C = shot->obj.pos.z;
|
||||
boss->unk_066 = temp_v0 - 1;
|
||||
if (boss->obj.id == OBJ_BOSS_301) {
|
||||
boss->swork[5] = shot->obj.id;
|
||||
} else if (boss->obj.id == OBJ_BOSS_319) {
|
||||
boss->fwork[47] = shot->obj.pos.x;
|
||||
boss->fwork[48] = shot->obj.pos.y;
|
||||
boss->fwork[49] = shot->obj.pos.z;
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
@@ -1741,7 +1741,7 @@ void func_8003C008(PlayerShot* shot) {
|
||||
s32 i;
|
||||
s32 j;
|
||||
f32* hitboxData;
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
f32 temp_ft4;
|
||||
f32 temp_ft5;
|
||||
f32 var_fa1;
|
||||
@@ -1751,17 +1751,17 @@ void func_8003C008(PlayerShot* shot) {
|
||||
s32 var_s6;
|
||||
s32 count;
|
||||
|
||||
obj408 = gObjects408;
|
||||
for (i = 0; i < ARRAY_COUNT(gObjects408); i++, obj408++) {
|
||||
if ((obj408->obj.status == 2) && (obj408->timer_05A == 0)) {
|
||||
if (obj408->obj.id == OBJ_408_316) {
|
||||
boss = gBosses;
|
||||
for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) {
|
||||
if ((boss->obj.status == 2) && (boss->timer_05A == 0)) {
|
||||
if (boss->obj.id == OBJ_BOSS_316) {
|
||||
var_s6 = gFrameCount & 7;
|
||||
var_fs2 = shot->unk_44 * 40.0f;
|
||||
} else {
|
||||
var_s6 = gFrameCount & 0xF;
|
||||
var_fs2 = shot->unk_44 * 30.0f;
|
||||
}
|
||||
hitboxData = obj408->info.hitbox;
|
||||
hitboxData = boss->info.hitbox;
|
||||
count = *hitboxData++;
|
||||
if (count != 0) {
|
||||
for (j = 0; j < count; j++, hitboxData += 6) {
|
||||
@@ -1769,30 +1769,30 @@ void func_8003C008(PlayerShot* shot) {
|
||||
Matrix_RotateZ(gCalcMatrix, -hitboxData[3] * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -hitboxData[1] * M_DTOR, 1);
|
||||
Matrix_RotateY(gCalcMatrix, -hitboxData[2] * M_DTOR, 1);
|
||||
Matrix_RotateZ(gCalcMatrix, -obj408->obj.rot.z * M_DTOR, 1);
|
||||
Matrix_RotateX(gCalcMatrix, -obj408->obj.rot.x * M_DTOR, 1);
|
||||
Matrix_RotateY(gCalcMatrix, -obj408->obj.rot.y * M_DTOR, 1);
|
||||
Matrix_RotateZ(gCalcMatrix, -boss->obj.rot.z * M_DTOR, 1);
|
||||
Matrix_RotateX(gCalcMatrix, -boss->obj.rot.x * M_DTOR, 1);
|
||||
Matrix_RotateY(gCalcMatrix, -boss->obj.rot.y * M_DTOR, 1);
|
||||
hitboxData += 4;
|
||||
} else {
|
||||
Matrix_RotateZ(gCalcMatrix, -obj408->obj.rot.z * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -obj408->obj.rot.x * M_DTOR, 1);
|
||||
Matrix_RotateY(gCalcMatrix, -obj408->obj.rot.y * M_DTOR, 1);
|
||||
Matrix_RotateZ(gCalcMatrix, -boss->obj.rot.z * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -boss->obj.rot.x * M_DTOR, 1);
|
||||
Matrix_RotateY(gCalcMatrix, -boss->obj.rot.y * M_DTOR, 1);
|
||||
}
|
||||
if ((j == var_s6) && (hitboxData[1] > -100.0f) && (hitboxData[3] > -100.0f)) {
|
||||
sp8C.x = shot->obj.pos.x - obj408->obj.pos.x;
|
||||
sp8C.y = shot->obj.pos.y - obj408->obj.pos.y;
|
||||
sp8C.z = shot->obj.pos.z - obj408->obj.pos.z;
|
||||
sp8C.x = shot->obj.pos.x - boss->obj.pos.x;
|
||||
sp8C.y = shot->obj.pos.y - boss->obj.pos.y;
|
||||
sp8C.z = shot->obj.pos.z - boss->obj.pos.z;
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &sp8C, &sp80);
|
||||
temp_ft4 = (hitboxData[4] + obj408->obj.pos.x) - (obj408->obj.pos.x + sp80.x);
|
||||
temp_ft5 = (hitboxData[2] + obj408->obj.pos.y) - (obj408->obj.pos.y + sp80.y);
|
||||
var_fa1 = (hitboxData[0] + obj408->obj.pos.z) - (obj408->obj.pos.z + sp80.z);
|
||||
temp_ft4 = (hitboxData[4] + boss->obj.pos.x) - (boss->obj.pos.x + sp80.x);
|
||||
temp_ft5 = (hitboxData[2] + boss->obj.pos.y) - (boss->obj.pos.y + sp80.y);
|
||||
var_fa1 = (hitboxData[0] + boss->obj.pos.z) - (boss->obj.pos.z + sp80.z);
|
||||
if ((gLevelMode == LEVELMODE_ON_RAILS) && (var_fa1 < 0.0f)) {
|
||||
var_fa1 *= 0.6f;
|
||||
}
|
||||
if (sqrtf(SQ(temp_ft4) + SQ(temp_ft5) + SQ(var_fa1)) < var_fs2) {
|
||||
obj408->unk_066 = j;
|
||||
obj408->unk_062 = -1;
|
||||
obj408->unk_064 = 20;
|
||||
boss->unk_066 = j;
|
||||
boss->unk_062 = -1;
|
||||
boss->unk_064 = 20;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2007,8 +2007,8 @@ void func_8003CC08(PlayerShot* shot) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gObjects408->obj.status == 2) &&
|
||||
(gObjects408->unk_04E == 17))) {
|
||||
if (!((gCurrentLevel == LEVEL_VENOM_ANDROSS) && (gBosses[0].obj.status == 2) &&
|
||||
(gBosses[0].unk_04E == 17))) {
|
||||
func_80038140(shot);
|
||||
}
|
||||
func_8003C3D8(shot);
|
||||
|
||||
+25
-23
@@ -1,5 +1,7 @@
|
||||
#include "global.h"
|
||||
|
||||
extern f32 D_E16C50_801C4188;
|
||||
|
||||
f32 D_8015F960;
|
||||
u8 D_8015F964;
|
||||
f32 D_8015F968;
|
||||
@@ -368,14 +370,14 @@ void func_8003E1E8(void) {
|
||||
Matrix_Translate(gGfxMatrix, 0.0f, 0.0f, -290.0f, 1);
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Scale(gGfxMatrix, 11.0f, 11.0f, 1.0f, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, (gPlayer->unk_034 + (gFrameCount * 1.5f)) * M_DTOR, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, (gPlayer[0].unk_034 + (gFrameCount * 1.5f)) * M_DTOR, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_C039208);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
if (D_80177AB0 != 5) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Scale(gGfxMatrix, 10.0f, 10.0f, 1.0f, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, (gPlayer->unk_034 + (gFrameCount * -1.3f)) * M_DTOR, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, (gPlayer[0].unk_034 + (gFrameCount * -1.3f)) * M_DTOR, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_C039208);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
@@ -384,7 +386,7 @@ void func_8003E1E8(void) {
|
||||
}
|
||||
break;
|
||||
case LEVEL_AQUAS:
|
||||
if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
sp13C = ((Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114));
|
||||
sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f);
|
||||
sp13C = Math_ModF(sp13C * -40.44444f * 2.0f, 7280.0f);
|
||||
@@ -394,7 +396,7 @@ void func_8003E1E8(void) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Matrix_Translate(gGfxMatrix, sp13C, sp134, -7000.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
gSPDisplayList(gMasterDisp++, D_601AFF0);
|
||||
} else {
|
||||
gSPDisplayList(gMasterDisp++, D_601C080);
|
||||
@@ -407,7 +409,7 @@ void func_8003E1E8(void) {
|
||||
}
|
||||
Matrix_Translate(gGfxMatrix, 7280.0f * sp13C, 0.0f, 0.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
if (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) {
|
||||
gSPDisplayList(gMasterDisp++, D_601AFF0);
|
||||
|
||||
} else {
|
||||
@@ -423,14 +425,14 @@ void func_8003E1E8(void) {
|
||||
sp138 = Math_RadToDeg(gPlayer[gPlayerNum].unk_058) - gPlayer[gPlayerNum].unk_114;
|
||||
sp134 = (gPlayer[gPlayerNum].unk_05C * -7000.0f) - (gPlayer[gPlayerNum].camEye.y * 0.6f);
|
||||
sp13C = sp138 * -40.44444f * 2.0f;
|
||||
if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) &&
|
||||
(gPlayer->unk_1D0 < 3)) {
|
||||
D_8015F968 += __sinf(gPlayer->unk_058) * 20.0f;
|
||||
if ((gCurrentLevel == LEVEL_TITANIA) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) &&
|
||||
(gPlayer[0].unk_1D0 < 3)) {
|
||||
D_8015F968 += __sinf(gPlayer[0].unk_058) * 20.0f;
|
||||
sp13C += D_8015F968;
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2) &&
|
||||
(gPlayer->unk_1D0 >= 2) && (gPlayer->camEye.z <= -1900.0f)) {
|
||||
D_8015F968 = __sinf(gPlayer->unk_05C) * 7000.0f;
|
||||
if ((gCurrentLevel == LEVEL_SOLAR) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) &&
|
||||
(gPlayer[0].unk_1D0 >= 2) && (gPlayer[0].camEye.z <= -1900.0f)) {
|
||||
D_8015F968 = __sinf(gPlayer[0].unk_05C) * 7000.0f;
|
||||
sp134 -= fabsf(D_8015F968);
|
||||
}
|
||||
sp13C = Math_ModF(sp13C, 7280.0f);
|
||||
@@ -474,10 +476,10 @@ void func_8003E1E8(void) {
|
||||
}
|
||||
break;
|
||||
case LEVELTYPE_SPACE:
|
||||
if (gPlayer->state_1C8 != PLAYERSTATE_1C8_8) {
|
||||
if (gPlayer[0].state_1C8 != PLAYERSTATE_1C8_8) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
sp12C = Math_RadToDeg(gPlayer->unk_058);
|
||||
sp130 = Math_RadToDeg(gPlayer->unk_05C);
|
||||
sp12C = Math_RadToDeg(gPlayer[0].unk_058);
|
||||
sp130 = Math_RadToDeg(gPlayer[0].unk_05C);
|
||||
if (((sp12C < 45.0f) || (sp12C > 315.0f)) && ((sp130 < 40.0f) || (sp130 > 325.0f))) {
|
||||
RCP_SetupDL_36();
|
||||
sp138 = D_80178420;
|
||||
@@ -498,7 +500,7 @@ void func_8003E1E8(void) {
|
||||
sp138 = Math_ModF(sp138 - 34.5f, 480.0f);
|
||||
sp134 = Math_ModF(sp134 + 19.0f, 360.0f);
|
||||
} else if (sp11C == LEVEL_BOLSE) {
|
||||
if ((gPlayer->state_1C8 != PLAYERSTATE_1C8_7) || (gPlayer->unk_1D0 < 10)) {
|
||||
if ((gPlayer[0].state_1C8 != PLAYERSTATE_1C8_7) || (gPlayer[0].unk_1D0 < 10)) {
|
||||
sp134 = Math_ModF(sp134 + 360.0f - 100.0f, 360.0f);
|
||||
}
|
||||
} else {
|
||||
@@ -530,7 +532,7 @@ void func_8003E1E8(void) {
|
||||
}
|
||||
break;
|
||||
case LEVEL_METEO:
|
||||
if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_7) && (D_80177A80 > 260)) {
|
||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) && (D_80177A80 > 260)) {
|
||||
Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f) - 30.0f, -290.0f, 1);
|
||||
Matrix_Scale(gGfxMatrix, 0.5f, 0.5f, 1.0f, 1);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
@@ -566,7 +568,7 @@ void func_8003E1E8(void) {
|
||||
if (sp128 > 3.5f) {
|
||||
sp128 = 3.5f;
|
||||
}
|
||||
if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) {
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) {
|
||||
sp128 = D_8015F984;
|
||||
if (sp128 > 3.5f) {
|
||||
sp128 = 3.5f;
|
||||
@@ -590,7 +592,7 @@ void func_8003E1E8(void) {
|
||||
break;
|
||||
case LEVEL_BOLSE:
|
||||
sp128 = 1.0f;
|
||||
if ((D_80177A80 > 500) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_7)) {
|
||||
if ((D_80177A80 > 500) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) {
|
||||
sp128 = 1.3f;
|
||||
}
|
||||
Matrix_Translate(gGfxMatrix, sp138 - 120.0f, -(sp134 - 120.0f), -290.0f, 1);
|
||||
@@ -665,7 +667,7 @@ void func_80040450(void) {
|
||||
if (D_80178380[gPlayerNum] > 300) {
|
||||
D_80178380[gPlayerNum] = 0;
|
||||
}
|
||||
if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer->state_1C8 == PLAYERSTATE_1C8_2)) ||
|
||||
if (((gCurrentLevel == LEVEL_AQUAS) && (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2)) ||
|
||||
(((gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_5) || (gLevelMode == LEVELMODE_ALL_RANGE) ||
|
||||
(gPlayer[gPlayerNum].state_1C8 == PLAYERSTATE_1C8_7)) &&
|
||||
(gLevelType == LEVELTYPE_PLANET) && (gCurrentLevel != LEVEL_TITANIA) && (gCurrentLevel != LEVEL_AQUAS))) {
|
||||
@@ -683,7 +685,7 @@ void func_80040450(void) {
|
||||
if (gCurrentLevel == LEVEL_KATINA) {
|
||||
D_801783D4 -= 80.0f;
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer->unk_1D0 >= 2) && (D_80161684 == 0)) {
|
||||
if ((gCurrentLevel == LEVEL_ZONESS) && (gPlayer[0].unk_1D0 >= 2) && (D_80161684 == 0)) {
|
||||
D_801783D4 -= 60.0f;
|
||||
D_801783D0 -= 480.0f;
|
||||
}
|
||||
@@ -788,7 +790,7 @@ void func_80040CE4(void) {
|
||||
u16* sp1C4;
|
||||
Gfx* sp1C0;
|
||||
|
||||
if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer->camEye.y > 4000.0f) || (D_80177A98 == 0))) {
|
||||
if ((gCurrentLevel != LEVEL_VENOM_2) && ((gPlayer[0].camEye.y > 4000.0f) || (D_80177A98 == 0))) {
|
||||
return;
|
||||
}
|
||||
if ((gCurrentLevel == LEVEL_BOLSE) && (D_800C9C34 != 0)) {
|
||||
@@ -1043,9 +1045,9 @@ void func_80040CE4(void) {
|
||||
} else {
|
||||
RCP_SetupDL(&gMasterDisp, 0x25);
|
||||
}
|
||||
if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_2) && (gPlayer->unk_1D0 < 2)) {
|
||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_2) && (gPlayer[0].unk_1D0 < 2)) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 255);
|
||||
} else if (gPlayer->state_1C8 == PLAYERSTATE_1C8_7) {
|
||||
} else if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, D_8015F974, D_8015F978, D_8015F97C, D_8015F980);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, (s32) D_E16C50_801C4188);
|
||||
|
||||
+35
-57
@@ -131,60 +131,39 @@ AnimationHeader* D_800CA1F4[] = {
|
||||
D_60265B4, D_602B8DC, D_60034C4, D_602A2CC, D_602CEB4, D_602B778, (AnimationHeader*) 0x0601F3B8,
|
||||
};
|
||||
|
||||
extern void func_80187520(s32, void*);
|
||||
extern void func_800AB334(void);
|
||||
extern void func_800ADF58(Player*);
|
||||
extern void func_8004D440(Player*);
|
||||
extern void func_80046358(Player*);
|
||||
extern void func_8004B368(Player*);
|
||||
extern void func_80095604(Player*);
|
||||
extern void func_800B2130(Player*);
|
||||
extern void func_E6A810_8018769C(Player*);
|
||||
extern void func_801882CC(Player*, OSContPad**, OSContPad**);
|
||||
extern void func_8018E084(Player*);
|
||||
extern void func_8018F94C(Player*);
|
||||
extern void func_80191160(Player*);
|
||||
extern void func_80193C4C(Player*);
|
||||
extern void func_80194728(Player*);
|
||||
extern void func_80196D88(Player*);
|
||||
extern void func_80197290(Player*);
|
||||
extern void func_8019C85C(Player*);
|
||||
extern void func_8019D76C(Player*);
|
||||
extern void func_8019EE60(Player*);
|
||||
extern void func_801A7930(Player*);
|
||||
extern void func_801AF8F4(Player*, OSContPad**, OSContPad**);
|
||||
extern void func_801B3D04(Player*, OSContPad**, OSContPad**);
|
||||
extern void func_8002ED60(Player*);
|
||||
extern void func_800935E8(Player*);
|
||||
extern void func_8018769C(Player*);
|
||||
extern void func_8018CD8C(Player*);
|
||||
extern void func_8018DF74(Player*);
|
||||
extern void func_8018DA58(Object_2F4*);
|
||||
extern void func_8018E084(Player*);
|
||||
extern void func_8018ED9C(Object_2F4*);
|
||||
extern void func_8018EF6C(Player*);
|
||||
extern void func_8018F880(Player*);
|
||||
extern void func_8018F94C(Player*);
|
||||
extern void func_80191160(Player*);
|
||||
extern void func_80192E20(Player*);
|
||||
extern void func_80193A30(Player*);
|
||||
extern void func_80193C4C(Player*);
|
||||
extern void func_80194728(Player*);
|
||||
extern void func_80195E44(Object_2F4*);
|
||||
extern void func_80196BF8(Player*);
|
||||
extern void func_80196D88(Player*);
|
||||
extern void func_80197290(Player*);
|
||||
extern void func_80197F10(Object_2F4*);
|
||||
extern void func_801988B8(Player*);
|
||||
extern void func_8019BA64(Player*);
|
||||
extern void func_8019D428(Player*);
|
||||
extern void func_801A0AC0(Player*);
|
||||
extern void func_801A10F4(Player*);
|
||||
extern void func_801AB9B0(Player*);
|
||||
extern void func_801AC754(Player*);
|
||||
extern void func_800A46A0(Player*);
|
||||
extern void func_800AD7F0(Player*);
|
||||
extern void func_800B2574(Player*);
|
||||
extern void func_800AE278(Player*);
|
||||
extern void func_80093164(Object_2F4*);
|
||||
extern void func_800A6028(Vec3f*, u32);
|
||||
extern void func_8018DA58(Object_2F4*);
|
||||
extern void func_8018ED9C(Object_2F4*);
|
||||
extern void func_80195E44(Object_2F4*);
|
||||
extern void func_80197F10(Object_2F4*);
|
||||
extern void func_8019C85C(Player*);
|
||||
extern void func_8019DD20(Object_2F4*);
|
||||
extern void func_8019E5F0(Object_2F4*);
|
||||
extern void func_8019EE60(Player*);
|
||||
extern void func_8019FF00(Object_2F4*);
|
||||
extern void func_E9F1D0_801A0AC0(Player*);
|
||||
extern void func_801A8BE8(Object_2F4*);
|
||||
extern void func_801AB9B0(Player*);
|
||||
extern void func_E6A810_801AC754(Player*);
|
||||
extern void func_801AF8F4(Player*, OSContPad**, OSContPad**);
|
||||
extern void func_801B28BC(Object_2F4*);
|
||||
extern void func_801B3D04(Player*, OSContPad**, OSContPad**);
|
||||
extern void func_801BE0F0(Object_2F4*);
|
||||
|
||||
void func_80048AC0(s32 teamId) {
|
||||
@@ -268,7 +247,7 @@ void func_80048E40(Player* player) {
|
||||
f32 temp_ret;
|
||||
s32 temp_v1;
|
||||
|
||||
gObjects408[1].obj.status = 0;
|
||||
gBosses[1].obj.status = 0;
|
||||
Math_SmoothStepToF(&player->unk_130, 0.0f, 0.1f, 15.0f, 0.0f);
|
||||
Math_SmoothStepToF(&player->unk_12C, 0.0f, 0.1f, 15.0f, 0.0f);
|
||||
Math_SmoothStepToF(&player->unk_0E4, 0.0f, 0.1f, 3.0f, 0.0f);
|
||||
@@ -421,9 +400,9 @@ void func_80049630(Object_2F4* obj2F4) {
|
||||
|
||||
switch (obj2F4->unk_0B8) {
|
||||
case 0:
|
||||
obj2F4->unk_18C[0].x = D_800C9FA0[obj2F4->index].x + gPlayer->pos.x;
|
||||
obj2F4->unk_18C[0].y = D_800C9FA0[obj2F4->index].y + gPlayer->pos.y;
|
||||
obj2F4->unk_18C[0].z = D_800C9FA0[obj2F4->index].z + gPlayer->pos.z;
|
||||
obj2F4->unk_18C[0].x = gPlayer[0].pos.x + D_800C9FA0[obj2F4->index].x;
|
||||
obj2F4->unk_18C[0].y = gPlayer[0].pos.y + D_800C9FA0[obj2F4->index].y;
|
||||
obj2F4->unk_18C[0].z = gPlayer[0].pos.z + D_800C9FA0[obj2F4->index].z;
|
||||
Math_SmoothStepToF(&obj2F4->obj.pos.x, obj2F4->unk_18C[0].x, 0.05f, 50.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&obj2F4->obj.pos.y, obj2F4->unk_18C[0].y, 0.05f, 50.0f, 0.0001f);
|
||||
Math_SmoothStepToF(&obj2F4->obj.pos.z, obj2F4->unk_18C[0].z, 0.05f, 50.0f, 0.0001f);
|
||||
@@ -733,24 +712,24 @@ void func_8004A52C(Player* player) {
|
||||
break;
|
||||
|
||||
case LEVEL_TITANIA:
|
||||
func_8018769C(player);
|
||||
func_E6A810_8018769C(player);
|
||||
func_800AA800(player);
|
||||
break;
|
||||
|
||||
case LEVEL_ZONESS:
|
||||
func_8019D428(player);
|
||||
func_E16C50_8019D428(player);
|
||||
break;
|
||||
|
||||
case LEVEL_MACBETH:
|
||||
func_801AC754(player);
|
||||
func_E6A810_801AC754(player);
|
||||
break;
|
||||
|
||||
case LEVEL_SECTOR_Y:
|
||||
func_801A0AC0(player);
|
||||
func_E9F1D0_801A0AC0(player);
|
||||
break;
|
||||
|
||||
case LEVEL_SOLAR:
|
||||
func_801A10F4(player);
|
||||
func_E16C50_801A10F4(player);
|
||||
break;
|
||||
|
||||
case LEVEL_VENOM_1:
|
||||
@@ -763,7 +742,7 @@ void func_8004A52C(Player* player) {
|
||||
break;
|
||||
|
||||
case LEVEL_AREA_6:
|
||||
func_8018DF74(player);
|
||||
func_E16C50_8018DF74(player);
|
||||
break;
|
||||
}
|
||||
func_8004990C(player);
|
||||
@@ -1422,8 +1401,8 @@ void func_8004B368(Player* player) {
|
||||
player->unk_0F0 = __sinf(player->unk_0F4 * M_DTOR);
|
||||
}
|
||||
|
||||
void func_8004C90C(s32 arg0) {
|
||||
func_80187520(0x5A, arg0);
|
||||
void func_8004C90C(Player* player) {
|
||||
func_E51970_80187520(90, player);
|
||||
}
|
||||
|
||||
void func_8004C930(Player* player) {
|
||||
@@ -1444,7 +1423,7 @@ void func_8004C930(Player* player) {
|
||||
func_80048E40(player);
|
||||
}
|
||||
} else if (gCurrentLevel == LEVEL_AREA_6) {
|
||||
func_DF4260_8018ED78((Object_408*) player);
|
||||
func_E16C50_8018ED78(player);
|
||||
} else if (gCurrentLevel == LEVEL_FORTUNA) {
|
||||
func_8004C90C(player);
|
||||
func_800AA800(player);
|
||||
@@ -1460,10 +1439,10 @@ void func_8004C930(Player* player) {
|
||||
func_8019EE60(player);
|
||||
func_800AA800(player);
|
||||
} else if (gCurrentLevel == LEVEL_SOLAR) {
|
||||
func_801A7930(player);
|
||||
func_E16C50_801A7930(player);
|
||||
func_800AA800(player);
|
||||
} else if (gCurrentLevel == LEVEL_ZONESS) {
|
||||
func_8019D76C(player);
|
||||
func_E16C50_8019D76C(player);
|
||||
func_800AA800(player);
|
||||
} else if (gCurrentLevel == LEVEL_VENOM_2) {
|
||||
func_80196D88(player);
|
||||
@@ -2213,8 +2192,7 @@ void func_8004EBD0(Object_2F4* obj2F4) {
|
||||
|
||||
Matrix_RotateY(gCalcMatrix, (gPlayer[0].unk_0E8 + 180.0f) * M_DTOR, 0);
|
||||
Matrix_RotateX(gCalcMatrix, -(gPlayer[0].unk_0E4 * M_DTOR), 1);
|
||||
Matrix_RotateZ(gCalcMatrix, -((gPlayer[0].unk_0F0 + gPlayer->unk_0F8) * M_DTOR), 1);
|
||||
|
||||
Matrix_RotateZ(gCalcMatrix, -((gPlayer[0].unk_0F8 + gPlayer[0].unk_0F0) * M_DTOR), 1);
|
||||
src.x = 0.0f;
|
||||
src.y = 0.0f;
|
||||
src.z = obj2F4->unk_124.z * obj2F4->unk_124.z;
|
||||
|
||||
+346
-515
File diff suppressed because it is too large
Load Diff
+47
-47
@@ -285,7 +285,7 @@ void func_8005A094(Object_2F4* obj2F4) {
|
||||
if (gCurrentLevel != LEVEL_SOLAR) {
|
||||
gSPDisplayList(gMasterDisp++, D_E6A810_801B769C[obj2F4->unk_046]);
|
||||
} else {
|
||||
if (gObjects408[0].unk_0E4 < 4800.0f) {
|
||||
if (gBosses[0].fwork[3] < 4800.0f) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x1E);
|
||||
gDPSetFogColor(gMasterDisp++, 0x40, 0x20, 0x20, gFogAlpha);
|
||||
gSPFogPosition(gMasterDisp++, gFogNear, gFogFar);
|
||||
@@ -661,10 +661,10 @@ void func_8005BAB4(ObjectId objId, s32 index) {
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case OBJ_408_292:
|
||||
case OBJ_BOSS_292:
|
||||
gSPDisplayList(gMasterDisp++, D_6034B90);
|
||||
break;
|
||||
case OBJ_408_316:
|
||||
case OBJ_BOSS_316:
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_0) {
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 0, 0, 0, 200);
|
||||
@@ -673,25 +673,25 @@ void func_8005BAB4(ObjectId objId, s32 index) {
|
||||
Graphics_SetScaleMtx(150.0f);
|
||||
gSPDisplayList(gMasterDisp++, D_102A8A0);
|
||||
break;
|
||||
case OBJ_408_293:
|
||||
case OBJ_408_294:
|
||||
case OBJ_408_295:
|
||||
case OBJ_408_296:
|
||||
__cosf(gObjects408[index].obj.rot.z * M_DTOR);
|
||||
case OBJ_BOSS_293:
|
||||
case OBJ_BOSS_294:
|
||||
case OBJ_BOSS_295:
|
||||
case OBJ_BOSS_296:
|
||||
__cosf(gBosses[index].obj.rot.z * M_DTOR);
|
||||
if (D_80161A88 == 2) {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 90);
|
||||
} else {
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 255, 255, 255, 150);
|
||||
}
|
||||
switch (objId) {
|
||||
case OBJ_408_293:
|
||||
case OBJ_BOSS_293:
|
||||
gSPDisplayList(gMasterDisp++, D_6036840);
|
||||
break;
|
||||
case OBJ_408_294:
|
||||
case OBJ_BOSS_294:
|
||||
gSPDisplayList(gMasterDisp++, D_6036CD0);
|
||||
break;
|
||||
case OBJ_408_295:
|
||||
case OBJ_408_296:
|
||||
case OBJ_BOSS_295:
|
||||
case OBJ_BOSS_296:
|
||||
gSPDisplayList(gMasterDisp++, D_60363B0);
|
||||
break;
|
||||
}
|
||||
@@ -749,8 +749,8 @@ void func_8005BAB4(ObjectId objId, s32 index) {
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
gSPDisplayList(gMasterDisp++, D_1024AC0);
|
||||
break;
|
||||
case OBJ_408_319:
|
||||
func_DF4260_80198310(&gObjects408[index]);
|
||||
case OBJ_BOSS_319:
|
||||
func_DF4260_80198310(&gBosses[index]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1123,7 +1123,7 @@ void Object_2F4_Draw1(Object_2F4* obj2F4) {
|
||||
obj2F4->unk_0B0 = D_801615EC;
|
||||
}
|
||||
|
||||
void Object_408_Draw(Object_408* obj408, s32 arg1) {
|
||||
void Boss_Draw(Boss* boss, s32 arg1) {
|
||||
f32 var_fa1;
|
||||
f32 var_ft5;
|
||||
f32 var_fv0;
|
||||
@@ -1131,21 +1131,21 @@ void Object_408_Draw(Object_408* obj408, s32 arg1) {
|
||||
f32 sp3C;
|
||||
Vec3f sp30 = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
if (obj408->info.unk_19 != 0) {
|
||||
obj408->obj.pos.y += obj408->unk_068 + D_8017847C;
|
||||
func_8005D1F0(&obj408->obj, obj408->info.drawType);
|
||||
obj408->obj.pos.y -= obj408->unk_068 + D_8017847C;
|
||||
if (boss->info.unk_19 != 0) {
|
||||
boss->obj.pos.y += boss->unk_068 + D_8017847C;
|
||||
func_8005D1F0(&boss->obj, boss->info.drawType);
|
||||
boss->obj.pos.y -= boss->unk_068 + D_8017847C;
|
||||
} else {
|
||||
func_8005D1F0(&obj408->obj, obj408->info.drawType);
|
||||
func_8005D1F0(&boss->obj, boss->info.drawType);
|
||||
}
|
||||
Matrix_MultVec3f(&D_801615F0, &sp30, &D_801615D0);
|
||||
func_8005F290(&obj408->sfxPos, &D_801615D0);
|
||||
if ((obj408->obj.id == OBJ_408_316) || (obj408->obj.id == OBJ_408_317)) {
|
||||
func_8005F290(&boss->sfxPos, &D_801615D0);
|
||||
if ((boss->obj.id == OBJ_BOSS_316) || (boss->obj.id == OBJ_BOSS_317)) {
|
||||
var_fa1 = 6000.0f;
|
||||
var_fv0 = 6000.0f;
|
||||
var_ft5 = 0.9f;
|
||||
var_fv1 = -20000.0f;
|
||||
} else if (obj408->obj.id == OBJ_408_313) {
|
||||
} else if (boss->obj.id == OBJ_BOSS_313) {
|
||||
var_fv1 = -25000.0f;
|
||||
var_ft5 = 0.7f;
|
||||
var_fa1 = 3000.0f;
|
||||
@@ -1161,27 +1161,27 @@ void Object_408_Draw(Object_408* obj408, s32 arg1) {
|
||||
if (fabsf(D_801615D0.x) < (fabsf(D_801615D0.z * var_ft5) + var_fa1)) {
|
||||
if (fabsf(D_801615D0.y) < (fabsf(D_801615D0.z * var_ft5) + var_fa1)) {
|
||||
sp3C = 1.0f;
|
||||
if (obj408->obj.id != OBJ_408_309) {
|
||||
if (obj408->obj.id != OBJ_408_316) {
|
||||
func_8005F670(&obj408->obj.pos);
|
||||
if (boss->obj.id != OBJ_BOSS_309) {
|
||||
if (boss->obj.id != OBJ_BOSS_316) {
|
||||
func_8005F670(&boss->obj.pos);
|
||||
}
|
||||
if (obj408->info.drawType != 2) {
|
||||
if (boss->info.drawType != 2) {
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
}
|
||||
if (arg1 < 0) {
|
||||
func_800596C0();
|
||||
}
|
||||
obj408->info.draw(&obj408->obj);
|
||||
boss->info.draw(&boss->obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
D_801615D0.y = sp3C;
|
||||
if (obj408->obj.id == OBJ_408_309) {
|
||||
obj408->unk_308 = D_801615D0;
|
||||
func_8005F670(&obj408->obj.pos);
|
||||
if (boss->obj.id == OBJ_BOSS_309) {
|
||||
boss->vwork[30] = D_801615D0;
|
||||
func_8005F670(&boss->obj.pos);
|
||||
Matrix_SetGfxMtx(&gMasterDisp);
|
||||
obj408->info.draw(&obj408->obj);
|
||||
boss->info.draw(&boss->obj);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1320,7 +1320,7 @@ void func_8005ECD8(s32 index, Object* obj) {
|
||||
Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + gObjects2F4[index].unk_114,
|
||||
obj->pos.z + D_80177D20, 1);
|
||||
break;
|
||||
case OBJ_408_316:
|
||||
case OBJ_BOSS_316:
|
||||
Matrix_Translate(gGfxMatrix, obj->pos.x, D_80177940 + 2.0f + D_8017847C, obj->pos.z, 1);
|
||||
break;
|
||||
default:
|
||||
@@ -1331,7 +1331,7 @@ void func_8005ECD8(s32 index, Object* obj) {
|
||||
Matrix_Scale(gGfxMatrix, 1.0f, 0.0f, 1.0f, 1);
|
||||
Matrix_RotateY(gGfxMatrix, obj->rot.y * M_DTOR, 1);
|
||||
}
|
||||
if ((obj->id < OBJ_408_292) && (obj->id != OBJ_2F4_230) && (obj->id != OBJ_2F4_229) &&
|
||||
if ((obj->id < OBJ_BOSS_292) && (obj->id != OBJ_2F4_230) && (obj->id != OBJ_2F4_229) &&
|
||||
(obj->id != OBJ_2F4_231)) {
|
||||
Matrix_RotateX(gGfxMatrix, obj->rot.x * M_DTOR, 1);
|
||||
Matrix_RotateZ(gGfxMatrix, obj->rot.z * M_DTOR, 1);
|
||||
@@ -1536,7 +1536,7 @@ void Object_DrawAll(s32 arg0) {
|
||||
s32 i;
|
||||
s32 pad[5]; // probably separate iterators for each loop
|
||||
Object_2F4* obj2F4;
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
Object_4C* obj4C;
|
||||
Object_58* obj58;
|
||||
Item* item;
|
||||
@@ -1554,7 +1554,7 @@ void Object_DrawAll(s32 arg0) {
|
||||
spAC.y = obj58->sfxPos.y;
|
||||
spAC.z = obj58->sfxPos.z;
|
||||
Matrix_MultVec3fNoTranslate(&D_E51970_8019EE80, &spAC, &obj58->obj.pos);
|
||||
obj58->obj.rot.y = obj58->unk_54 + gObjects408->obj.rot.y;
|
||||
obj58->obj.rot.y = gBosses[0].obj.rot.y + (*obj58).unk_54;
|
||||
}
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Object_58_Draw(obj58);
|
||||
@@ -1575,9 +1575,9 @@ void Object_DrawAll(s32 arg0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) {
|
||||
if ((obj408->obj.status >= 2) && (obj408->obj.id != OBJ_408_310)) {
|
||||
if (!(obj408->timer_05C & 1)) {
|
||||
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
|
||||
if ((boss->obj.status >= 2) && (boss->obj.id != OBJ_BOSS_310)) {
|
||||
if (!(boss->timer_05C & 1)) {
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
} else {
|
||||
RCP_SetupDL_27();
|
||||
@@ -1585,11 +1585,11 @@ void Object_DrawAll(s32 arg0) {
|
||||
}
|
||||
func_800597C0(arg0);
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Object_408_Draw(obj408, arg0);
|
||||
Boss_Draw(boss, arg0);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
if ((obj408->unk_05E != 0) && (D_801615D0.y > 0.0f)) {
|
||||
if ((boss->unk_05E != 0) && (D_801615D0.y > 0.0f)) {
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
func_8005ECD8(i, &obj408->obj);
|
||||
func_8005ECD8(i, &boss->obj);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
}
|
||||
@@ -1673,7 +1673,7 @@ void Object_DrawAll(s32 arg0) {
|
||||
|
||||
void func_8006046C(s32 arg0) {
|
||||
s32 i;
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
Object_8C* obj8C;
|
||||
|
||||
RCP_SetupDL(&gMasterDisp, 0x40);
|
||||
@@ -1700,16 +1700,16 @@ void func_8006046C(s32 arg0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) {
|
||||
if ((obj408->obj.status >= 2) && (obj408->obj.id == OBJ_408_310)) {
|
||||
if (!(obj408->timer_05C & 1)) {
|
||||
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
|
||||
if ((boss->obj.status >= 2) && (boss->obj.id == OBJ_BOSS_310)) {
|
||||
if (!(boss->timer_05C & 1)) {
|
||||
RCP_SetupDL_29(gFogRed, gFogGreen, gFogBlue, gFogAlpha, gFogNear, gFogFar);
|
||||
} else {
|
||||
RCP_SetupDL_27();
|
||||
gDPSetPrimColor(gMasterDisp++, 0x00, 0x00, 64, 64, 255, 255);
|
||||
}
|
||||
Matrix_Push(&gGfxMatrix);
|
||||
Object_408_Draw(obj408, arg0);
|
||||
Boss_Draw(boss, arg0);
|
||||
Matrix_Pop(&gGfxMatrix);
|
||||
}
|
||||
}
|
||||
|
||||
+120
-120
@@ -148,14 +148,14 @@ void Object_2F4_Initialize(Object_2F4* obj2F4) {
|
||||
obj2F4->scale = 1.0f;
|
||||
}
|
||||
|
||||
void Object_408_Initialize(Object_408* obj408) {
|
||||
void Boss_Initialize(Boss* boss) {
|
||||
s32 i;
|
||||
u8* ptr = (u8*) obj408;
|
||||
u8* ptr = (u8*) boss;
|
||||
|
||||
for (i = 0; i < sizeof(Object_408); i++, ptr++) {
|
||||
for (i = 0; i < sizeof(Boss); i++, ptr++) {
|
||||
*ptr = 0;
|
||||
}
|
||||
obj408->unk_3F8 = 1.0f;
|
||||
boss->unk_3F8 = 1.0f;
|
||||
}
|
||||
|
||||
void Item_Initialize(Item* item) {
|
||||
@@ -219,18 +219,18 @@ void Object_2F4_Load(Object_2F4* obj2F4, ObjectInit* objInit) {
|
||||
Object_SetInfo(&obj2F4->info, obj2F4->obj.id);
|
||||
}
|
||||
|
||||
void Object_408_Load(Object_408* obj408, ObjectInit* objInit) {
|
||||
Object_408_Initialize(obj408);
|
||||
obj408->obj.status = 1;
|
||||
obj408->obj.pos.z = -objInit->zPos1;
|
||||
obj408->obj.pos.z += -3000.0f + objInit->zPos2;
|
||||
obj408->obj.pos.x = objInit->xPos;
|
||||
obj408->obj.pos.y = objInit->yPos;
|
||||
obj408->obj.rot.y = objInit->unk_C;
|
||||
obj408->obj.rot.x = objInit->unk_A;
|
||||
obj408->obj.rot.z = objInit->unk_E;
|
||||
obj408->obj.id = objInit->id;
|
||||
Object_SetInfo(&obj408->info, obj408->obj.id);
|
||||
void Boss_Load(Boss* boss, ObjectInit* objInit) {
|
||||
Boss_Initialize(boss);
|
||||
boss->obj.status = 1;
|
||||
boss->obj.pos.z = -objInit->zPos1;
|
||||
boss->obj.pos.z += -3000.0f + objInit->zPos2;
|
||||
boss->obj.pos.x = objInit->xPos;
|
||||
boss->obj.pos.y = objInit->yPos;
|
||||
boss->obj.rot.y = objInit->unk_C;
|
||||
boss->obj.rot.x = objInit->unk_A;
|
||||
boss->obj.rot.z = objInit->unk_E;
|
||||
boss->obj.id = objInit->id;
|
||||
Object_SetInfo(&boss->info, boss->obj.id);
|
||||
}
|
||||
|
||||
void Item_Load(Item* item, ObjectInit* objInit) {
|
||||
@@ -416,7 +416,7 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((objInit->id >= OBJ_2F4_176) && (objInit->id < OBJ_408_292)) {
|
||||
if ((objInit->id >= OBJ_2F4_176) && (objInit->id < OBJ_BOSS_292)) {
|
||||
if ((objInit->id == OBJ_2F4_267) || (objInit->id == OBJ_2F4_254)) {
|
||||
for (i = ARRAY_COUNT(gObjects2F4) - 1; i >= 0; i--) {
|
||||
if (gObjects2F4[i].obj.status == 0) {
|
||||
@@ -440,10 +440,10 @@ void Object_Load(ObjectInit* objInit, f32 arg1, f32 arg2, f32 arg3, f32 arg4) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((objInit->id >= OBJ_408_292) && (objInit->id < OBJ_ITEM_LASERS)) {
|
||||
for (i = 0; i < ARRAY_COUNT(gObjects408); i++) {
|
||||
if (gObjects408[i].obj.status == 0) {
|
||||
Object_408_Load(&gObjects408[i], objInit);
|
||||
if ((objInit->id >= OBJ_BOSS_292) && (objInit->id < OBJ_ITEM_LASERS)) {
|
||||
for (i = 0; i < ARRAY_COUNT(gBosses); i++) {
|
||||
if (gBosses[i].obj.status == 0) {
|
||||
Boss_Load(&gBosses[i], objInit);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -734,23 +734,23 @@ bool func_8006326C(Vec3f* arg0, Vec3f* arg1, ObjectId objId, Object* obj) {
|
||||
sp50.x = obj->pos.x;
|
||||
sp50.y = obj->pos.y;
|
||||
sp50.z = obj->pos.z;
|
||||
if ((objId == OBJ_2F4_180) || (objId == OBJ_80_149) || (objId == OBJ_80_150) || (objId == OBJ_408_308) ||
|
||||
(objId == OBJ_408_313) || (objId == OBJ_408_312) || (objId == OBJ_408_309) || (objId == OBJ_80_39)) {
|
||||
if ((objId == OBJ_2F4_180) || (objId == OBJ_80_149) || (objId == OBJ_80_150) || (objId == OBJ_BOSS_308) ||
|
||||
(objId == OBJ_BOSS_313) || (objId == OBJ_BOSS_312) || (objId == OBJ_BOSS_309) || (objId == OBJ_80_39)) {
|
||||
colId = COL1_0;
|
||||
if (objId == OBJ_408_312) {
|
||||
if (objId == OBJ_BOSS_312) {
|
||||
colId = COL1_9;
|
||||
}
|
||||
if (objId == OBJ_80_39) {
|
||||
colId = COL1_1;
|
||||
} else if (objId == OBJ_408_308) {
|
||||
} else if (objId == OBJ_BOSS_308) {
|
||||
colId = COL1_4;
|
||||
} else if (objId == OBJ_408_309) {
|
||||
} else if (objId == OBJ_BOSS_309) {
|
||||
colId = COL1_7;
|
||||
} else if (objId == OBJ_80_149) {
|
||||
colId = COL1_5;
|
||||
} else if (objId == OBJ_80_150) {
|
||||
colId = COL1_6;
|
||||
} else if (objId == OBJ_408_313) {
|
||||
} else if (objId == OBJ_BOSS_313) {
|
||||
colId = COL1_8;
|
||||
}
|
||||
if (func_800998FC(&sp5C, &sp50, arg1, colId, &sp44, &sp30) > 0) {
|
||||
@@ -787,7 +787,7 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) {
|
||||
Object_58* obj58;
|
||||
Object_80* obj80;
|
||||
Object_4C* obj4C;
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
Object_2F4* obj2F4;
|
||||
Vec3f temp;
|
||||
s32 i;
|
||||
@@ -838,34 +838,34 @@ s32 func_8006351C(s32 index, Vec3f* pos, Vec3f* arg2, s32 arg3) {
|
||||
}
|
||||
if ((arg3 == 0) || (arg3 == 2) || (arg3 == 3)) {
|
||||
if (arg3 != 2) {
|
||||
obj408 = gObjects408;
|
||||
for (i = 0; i < ARRAY_COUNT(gObjects408); i++, obj408++) {
|
||||
if (obj408->obj.status == 2) {
|
||||
if ((obj408->obj.id == OBJ_408_308) || (obj408->obj.id == OBJ_408_312) ||
|
||||
(obj408->obj.id == OBJ_408_313) || (obj408->obj.id == OBJ_408_309)) {
|
||||
if (func_8006326C(pos, arg2, obj408->obj.id, &obj408->obj)) {
|
||||
boss = gBosses;
|
||||
for (i = 0; i < ARRAY_COUNT(gBosses); i++, boss++) {
|
||||
if (boss->obj.status == 2) {
|
||||
if ((boss->obj.id == OBJ_BOSS_308) || (boss->obj.id == OBJ_BOSS_312) ||
|
||||
(boss->obj.id == OBJ_BOSS_313) || (boss->obj.id == OBJ_BOSS_309)) {
|
||||
if (func_8006326C(pos, arg2, boss->obj.id, &boss->obj)) {
|
||||
return 2;
|
||||
}
|
||||
} else if (obj408->obj.id == OBJ_408_310) {
|
||||
temp.x = fabsf(obj408->obj.pos.x - pos->x) * (5.0f / 6.0f);
|
||||
temp.y = fabsf(obj408->obj.pos.y - pos->y) * 2;
|
||||
temp.z = fabsf(obj408->obj.pos.z - pos->z) * (5.0f / 6.0f);
|
||||
} else if (boss->obj.id == OBJ_BOSS_310) {
|
||||
temp.x = fabsf(boss->obj.pos.x - pos->x) * (5.0f / 6.0f);
|
||||
temp.y = fabsf(boss->obj.pos.y - pos->y) * 2;
|
||||
temp.z = fabsf(boss->obj.pos.z - pos->z) * (5.0f / 6.0f);
|
||||
if (sqrtf(VEC3F_SQ(temp)) < 1500.0f) {
|
||||
obj408->unk_062 = 1;
|
||||
boss->unk_062 = 1;
|
||||
return 2;
|
||||
}
|
||||
} else {
|
||||
if (obj408->obj.id == OBJ_408_316) {
|
||||
temp.x = fabsf(obj408->obj.pos.x - pos->x);
|
||||
temp.y = fabsf(obj408->obj.pos.y - 300.0f - pos->y) * 7.42f;
|
||||
temp.z = fabsf(obj408->obj.pos.z - pos->z);
|
||||
if (boss->obj.id == OBJ_BOSS_316) {
|
||||
temp.x = fabsf(boss->obj.pos.x - pos->x);
|
||||
temp.y = fabsf(boss->obj.pos.y - 300.0f - pos->y) * 7.42f;
|
||||
temp.z = fabsf(boss->obj.pos.z - pos->z);
|
||||
if (sqrtf(VEC3F_SQ(temp)) < 2700.0f) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
if ((fabsf(pos->x - obj408->obj.pos.x) < 2000.0f) &&
|
||||
(fabsf(pos->z - obj408->obj.pos.z) < 2000.0f)) {
|
||||
if (func_80062DBC(pos, obj408->info.hitbox, &obj408->obj, 0.0f, 0.0f, 0.0f)) {
|
||||
if ((fabsf(pos->x - boss->obj.pos.x) < 2000.0f) &&
|
||||
(fabsf(pos->z - boss->obj.pos.z) < 2000.0f)) {
|
||||
if (func_80062DBC(pos, boss->info.hitbox, &boss->obj, 0.0f, 0.0f, 0.0f)) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
@@ -1165,14 +1165,14 @@ void Object_Init(s32 index, ObjectId objId) {
|
||||
case OBJ_2F4_192:
|
||||
gObjects2F4[index].unk_0C9 = 1;
|
||||
break;
|
||||
case OBJ_408_320:
|
||||
func_E9F1D0_8018D16C(&gObjects408[index]);
|
||||
case OBJ_BOSS_320:
|
||||
func_E9F1D0_8018D16C(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_316:
|
||||
func_E51970_80193CA4(&gObjects408[index]);
|
||||
case OBJ_BOSS_316:
|
||||
func_E51970_80193CA4(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_314:
|
||||
func_E9F1D0_80197CC4(&gObjects408[index]);
|
||||
case OBJ_BOSS_314:
|
||||
func_E9F1D0_80197CC4(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_205:
|
||||
case OBJ_2F4_206:
|
||||
@@ -1214,23 +1214,23 @@ void Object_Init(s32 index, ObjectId objId) {
|
||||
gObjects2F4[index].unk_0CE = 24;
|
||||
Audio_PlaySfx(0x31000016, &gObjects2F4[index].sfxPos, 4, &D_800C5D34, &D_800C5D34, &D_800C5D3C);
|
||||
break;
|
||||
case OBJ_408_297:
|
||||
func_E08400_80188A40(&gObjects408[index]);
|
||||
case OBJ_BOSS_297:
|
||||
func_E08400_80188A40(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_299:
|
||||
func_80042FAC(&gObjects408[index]);
|
||||
case OBJ_BOSS_299:
|
||||
func_80042FAC(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_300:
|
||||
func_80042FD0(&gObjects408[index]);
|
||||
case OBJ_BOSS_300:
|
||||
func_80042FD0(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_292:
|
||||
func_DF4260_801878D8(&gObjects408[index]);
|
||||
case OBJ_BOSS_292:
|
||||
func_DF4260_801878D8(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_293:
|
||||
func_DF4260_8018BE7C(&gObjects408[index]);
|
||||
case OBJ_BOSS_293:
|
||||
func_DF4260_8018BE7C(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_408_302:
|
||||
func_E16C50_80187754(&gObjects408[index]);
|
||||
case OBJ_BOSS_A6:
|
||||
func_E16C50_80187754(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_231:
|
||||
func_E6A810_8018B96C(&gObjects2F4[index]);
|
||||
@@ -1253,8 +1253,8 @@ void Object_Init(s32 index, ObjectId objId) {
|
||||
case OBJ_4C_169:
|
||||
func_E6A810_8018EFF0(&gObjects4C[index]);
|
||||
break;
|
||||
case OBJ_408_306:
|
||||
func_E6A810_8018FA48(&gObjects408[index]);
|
||||
case OBJ_BOSS_306:
|
||||
func_E6A810_8018FA48(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_240:
|
||||
func_E16C50_801915A4(&gObjects2F4[index]);
|
||||
@@ -1262,8 +1262,8 @@ void Object_Init(s32 index, ObjectId objId) {
|
||||
case OBJ_2F4_241:
|
||||
func_E16C50_80191BB8(&gObjects2F4[index]);
|
||||
break;
|
||||
case OBJ_408_307:
|
||||
func_E16C50_801932AC(&gObjects408[index]);
|
||||
case OBJ_BOSS_ZO:
|
||||
func_E16C50_801932AC(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_250:
|
||||
func_E16C50_8019B1F0(&gObjects2F4[index]);
|
||||
@@ -1283,8 +1283,8 @@ void Object_Init(s32 index, ObjectId objId) {
|
||||
case OBJ_2F4_257:
|
||||
func_E16C50_801AF9FC(&gObjects2F4[index]);
|
||||
break;
|
||||
case OBJ_408_318:
|
||||
func_E16C50_801B10F8(&gObjects408[index]);
|
||||
case OBJ_BOSS_AQ:
|
||||
func_E16C50_801B10F8(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_259:
|
||||
func_E16C50_801B6344(&gObjects2F4[index]);
|
||||
@@ -1298,8 +1298,8 @@ void Object_Init(s32 index, ObjectId objId) {
|
||||
case OBJ_80_57:
|
||||
func_E6A810_8018F0D8(&gObjects80[index]);
|
||||
break;
|
||||
case OBJ_408_319:
|
||||
func_DF4260_801935CC(&gObjects408[index]);
|
||||
case OBJ_BOSS_319:
|
||||
func_DF4260_801935CC(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_280:
|
||||
func_DF4260_8019250C(&gObjects2F4[index]);
|
||||
@@ -1539,9 +1539,9 @@ void func_800656D4(Object_2F4* obj2F4) {
|
||||
}
|
||||
}
|
||||
Math_Vec3fFromAngles(&sp98, obj2F4->obj.rot.x, obj2F4->obj.rot.y, obj2F4->unk_124.y);
|
||||
obj2F4->unk_0E8.x = sp98.x;
|
||||
obj2F4->unk_0E8.y = sp98.y;
|
||||
obj2F4->unk_0E8.z = sp98.z - D_80177D08;
|
||||
obj2F4->vel.x = sp98.x;
|
||||
obj2F4->vel.y = sp98.y;
|
||||
obj2F4->vel.z = sp98.z - D_80177D08;
|
||||
if (obj2F4->unk_0B4 == 0) {
|
||||
obj2F4->obj.rot.z += 5.0f;
|
||||
}
|
||||
@@ -1564,9 +1564,9 @@ void func_800656D4(Object_2F4* obj2F4) {
|
||||
func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 5.0f);
|
||||
Object_Kill(&obj2F4->obj, &obj2F4->sfxPos);
|
||||
}
|
||||
sp8C.x = obj2F4->unk_0E8.x;
|
||||
sp8C.y = obj2F4->unk_0E8.y;
|
||||
sp8C.z = obj2F4->unk_0E8.z;
|
||||
sp8C.x = obj2F4->vel.x;
|
||||
sp8C.y = obj2F4->vel.y;
|
||||
sp8C.z = obj2F4->vel.z;
|
||||
if ((func_8006351C(obj2F4->index, &obj2F4->obj.pos, &sp8C, 1) != 0) || (obj2F4->unk_0D0 != 0) ||
|
||||
(obj2F4->obj.pos.y < (D_80177940 + 10.0f)) || (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7)) {
|
||||
func_8007D2C8(obj2F4->obj.pos.x, obj2F4->obj.pos.y, obj2F4->obj.pos.z, 3.0f);
|
||||
@@ -1974,7 +1974,7 @@ void func_800674B4(f32 xPos, f32 yPos, f32 zPos, f32 xRot, f32 yRot, f32 arg5, f
|
||||
}
|
||||
|
||||
void func_8006753C(Object_2F4* obj2F4) {
|
||||
Player* player = gPlayer; // fake?
|
||||
Player* player = &gPlayer[0];
|
||||
s32 i;
|
||||
|
||||
obj2F4->obj.rot.y += 1.0f;
|
||||
@@ -2462,14 +2462,14 @@ void func_800690D0(s32 index, ObjectId objId) {
|
||||
case OBJ_2F4_192:
|
||||
func_8006684C(&gObjects2F4[index]);
|
||||
break;
|
||||
case OBJ_408_306:
|
||||
func_E6A810_801990DC(&gObjects408[index]);
|
||||
case OBJ_BOSS_306:
|
||||
func_E6A810_801990DC(&gBosses[index]);
|
||||
break;
|
||||
case OBJ_2F4_232:
|
||||
func_E6A810_8018B720(&gObjects2F4[index]);
|
||||
break;
|
||||
case OBJ_408_319:
|
||||
func_DF4260_80198594(&gObjects408[index]);
|
||||
case OBJ_BOSS_319:
|
||||
func_DF4260_80198594(&gBosses[index]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -2521,14 +2521,14 @@ void func_800693E8(Object_2F4* obj2F4) {
|
||||
}
|
||||
}
|
||||
|
||||
void func_80069658(Object_408* obj408) {
|
||||
obj408->obj.pos.x += obj408->vel.x;
|
||||
obj408->obj.pos.y += obj408->vel.y;
|
||||
obj408->obj.pos.z += obj408->vel.z;
|
||||
obj408->vel.y -= obj408->gravity;
|
||||
if ((D_80161AB8 != 0) && ((obj408->obj.pos.z + D_80177D20) > (obj408->info.unk_10 - gPlayer[0].camEye.z))) {
|
||||
void func_80069658(Boss* boss) {
|
||||
boss->obj.pos.x += boss->vel.x;
|
||||
boss->obj.pos.y += boss->vel.y;
|
||||
boss->obj.pos.z += boss->vel.z;
|
||||
boss->vel.y -= boss->gravity;
|
||||
if ((D_80161AB8 != 0) && ((boss->obj.pos.z + D_80177D20) > (boss->info.unk_10 - gPlayer[0].camEye.z))) {
|
||||
if (gPlayer[0].camEye.z) {} // fake
|
||||
Object_Kill(&obj408->obj, &obj408->sfxPos);
|
||||
Object_Kill(&boss->obj, &boss->sfxPos);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2659,44 +2659,44 @@ void Object_2F4_Update(Object_2F4* obj2F4) {
|
||||
}
|
||||
}
|
||||
|
||||
void Object_408_Update(Object_408* obj408) {
|
||||
if (obj408->timer_050 != 0) {
|
||||
obj408->timer_050--;
|
||||
void Boss_Update(Boss* boss) {
|
||||
if (boss->timer_050 != 0) {
|
||||
boss->timer_050--;
|
||||
}
|
||||
if (obj408->timer_052 != 0) {
|
||||
obj408->timer_052--;
|
||||
if (boss->timer_052 != 0) {
|
||||
boss->timer_052--;
|
||||
}
|
||||
if (obj408->timer_054 != 0) {
|
||||
obj408->timer_054--;
|
||||
if (boss->timer_054 != 0) {
|
||||
boss->timer_054--;
|
||||
}
|
||||
if (obj408->timer_056 != 0) {
|
||||
obj408->timer_056--;
|
||||
if (boss->timer_056 != 0) {
|
||||
boss->timer_056--;
|
||||
}
|
||||
if (obj408->timer_058 != 0) {
|
||||
obj408->timer_058--;
|
||||
if (boss->timer_058 != 0) {
|
||||
boss->timer_058--;
|
||||
}
|
||||
if (obj408->timer_05A != 0) {
|
||||
obj408->timer_05A--;
|
||||
if (boss->timer_05A != 0) {
|
||||
boss->timer_05A--;
|
||||
}
|
||||
if (obj408->timer_05C != 0) {
|
||||
obj408->timer_05C--;
|
||||
if (boss->timer_05C != 0) {
|
||||
boss->timer_05C--;
|
||||
}
|
||||
switch (obj408->obj.status) {
|
||||
switch (boss->obj.status) {
|
||||
case 1:
|
||||
obj408->obj.status = 2;
|
||||
Object_Init(obj408->index, obj408->obj.id);
|
||||
func_80069658(obj408);
|
||||
boss->obj.status = 2;
|
||||
Object_Init(boss->index, boss->obj.id);
|
||||
func_80069658(boss);
|
||||
break;
|
||||
case 2:
|
||||
func_80069658(obj408);
|
||||
if ((obj408->obj.status != 0) && (obj408->info.action != NULL)) {
|
||||
obj408->info.action(&obj408->obj);
|
||||
func_80069658(boss);
|
||||
if ((boss->obj.status != 0) && (boss->info.action != NULL)) {
|
||||
boss->info.action(&boss->obj);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
func_80069658(obj408);
|
||||
if (obj408->obj.status != 0) {
|
||||
func_800690D0(obj408->index, obj408->obj.id);
|
||||
func_80069658(boss);
|
||||
if (boss->obj.status != 0) {
|
||||
func_800690D0(boss->index, boss->obj.id);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2848,7 +2848,7 @@ void Object_UpdateAll(void) {
|
||||
s32 pad;
|
||||
Object_58* obj58;
|
||||
Object_2F4* obj2F4;
|
||||
Object_408* obj408;
|
||||
Boss* boss;
|
||||
Object_4C* obj4C;
|
||||
Object_80* obj80;
|
||||
Item* item;
|
||||
@@ -2888,10 +2888,10 @@ void Object_UpdateAll(void) {
|
||||
Object_4C_Update(obj4C);
|
||||
}
|
||||
}
|
||||
for (i = 0, obj408 = gObjects408; i < ARRAY_COUNT(gObjects408); i++, obj408++) {
|
||||
if (obj408->obj.status != 0) {
|
||||
obj408->index = i;
|
||||
Object_408_Update(obj408);
|
||||
for (i = 0, boss = gBosses; i < ARRAY_COUNT(gBosses); i++, boss++) {
|
||||
if (boss->obj.status != 0) {
|
||||
boss->index = i;
|
||||
Boss_Update(boss);
|
||||
}
|
||||
}
|
||||
for (i = 0, obj2F4 = gObjects2F4; i < ARRAY_COUNT(gObjects2F4); i++, obj2F4++) {
|
||||
|
||||
+22
-24
@@ -110,7 +110,6 @@ bool func_8006ABA4(Object_2F4* obj2F4) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// fake? gPlayer[0]. doesn't match
|
||||
void func_8006AC08(Object_2F4* obj2F4) {
|
||||
f32 sp2C;
|
||||
|
||||
@@ -119,10 +118,10 @@ void func_8006AC08(Object_2F4* obj2F4) {
|
||||
obj2F4->timer_0BC = 20;
|
||||
}
|
||||
sp2C = obj2F4->obj.pos.z + D_80177D20;
|
||||
obj2F4->obj.rot.y = Math_RadToDeg(Math_Atan2F(gPlayer->camEye.x - obj2F4->obj.pos.x, gPlayer->camEye.z - sp2C));
|
||||
obj2F4->obj.rot.x =
|
||||
-Math_RadToDeg(Math_Atan2F(gPlayer->camEye.y - obj2F4->obj.pos.y,
|
||||
sqrtf(SQ(gPlayer->camEye.x - obj2F4->obj.pos.x) + SQ(gPlayer->camEye.z - sp2C))));
|
||||
obj2F4->obj.rot.y = Math_RadToDeg(Math_Atan2F(gPlayer[0].camEye.x - obj2F4->obj.pos.x, gPlayer[0].camEye.z - sp2C));
|
||||
obj2F4->obj.rot.x = -Math_RadToDeg(
|
||||
Math_Atan2F(gPlayer[0].camEye.y - obj2F4->obj.pos.y,
|
||||
sqrtf(SQ(gPlayer[0].camEye.z - sp2C) + SQ(gPlayer[0].camEye.x - obj2F4->obj.pos.x))));
|
||||
}
|
||||
|
||||
void func_8006AD18(Object_2F4* obj2F4) {
|
||||
@@ -478,7 +477,6 @@ void func_8006BF7C(f32 xPos, f32 yPos, f32 zPos) {
|
||||
}
|
||||
}
|
||||
|
||||
// fake? gPlayer[0]. doesn't match
|
||||
Vec3f D_800D0030 = { 0.0f, -10.0f, 0.0f }; // could be in-function
|
||||
void func_8006C008(Object_2F4* obj2F4) {
|
||||
f32 sp4C;
|
||||
@@ -489,8 +487,8 @@ void func_8006C008(Object_2F4* obj2F4) {
|
||||
switch (obj2F4->unk_0B8) {
|
||||
case 40:
|
||||
if (obj2F4->unk_04A & 4) {
|
||||
obj2F4->obj.pos.x = obj2F4->unk_120 + gPlayer->pos.x;
|
||||
obj2F4->obj.pos.z = obj2F4->unk_124.x + gPlayer->unk_138;
|
||||
obj2F4->obj.pos.x = gPlayer[0].pos.x + (*obj2F4).unk_120;
|
||||
obj2F4->obj.pos.z = gPlayer[0].unk_138 + (*obj2F4).unk_124.x;
|
||||
}
|
||||
|
||||
obj2F4->obj.rot.x += obj2F4->unk_114;
|
||||
@@ -2953,7 +2951,7 @@ void func_80072594(Object_2F4* obj2F4) {
|
||||
spD8 = 0.0f;
|
||||
spD4 = 0.0f;
|
||||
|
||||
if ((gPlayer->state_1C8 == PLAYERSTATE_1C8_7) || (D_8017828C != 0)) {
|
||||
if ((gPlayer[0].state_1C8 == PLAYERSTATE_1C8_7) || (D_8017828C != 0)) {
|
||||
Object_Kill(&obj2F4->obj, &obj2F4->sfxPos);
|
||||
return;
|
||||
}
|
||||
@@ -2972,7 +2970,7 @@ void func_80072594(Object_2F4* obj2F4) {
|
||||
return;
|
||||
}
|
||||
if (obj2F4->unk_0B4 == 300) {
|
||||
gPlayer->unk_1A4 = obj2F4->index;
|
||||
gPlayer[0].unk_1A4 = obj2F4->index;
|
||||
obj2F4->timer_0C2 = 100;
|
||||
} else if (obj2F4->unk_0B4 >= 200) {
|
||||
obj2F4->unk_04E++;
|
||||
@@ -3035,13 +3033,13 @@ void func_80072594(Object_2F4* obj2F4) {
|
||||
Matrix_RotateY(gCalcMatrix, -obj2F4->unk_2E8.y * M_DTOR, 1);
|
||||
|
||||
if ((obj2F4->unk_0B8 == 0xE) || (obj2F4->unk_0B8 == 0xF)) {
|
||||
spB8.x = gPlayer->camEye.x - spF0;
|
||||
spB8.y = gPlayer->camEye.y - (spEC + 25.0f);
|
||||
spB8.z = (gPlayer->camEye.z * 15.0f) - spE8;
|
||||
spB8.x = gPlayer[0].camEye.x - spF0;
|
||||
spB8.y = gPlayer[0].camEye.y - (spEC + 25.0f);
|
||||
spB8.z = (gPlayer[0].camEye.z * 15.0f) - spE8;
|
||||
} else {
|
||||
spB8.x = gPlayer->pos.x - spF0;
|
||||
spB8.y = gPlayer->pos.y - (spEC + 25.0f);
|
||||
spB8.z = (gPlayer->vel.z * 15.0f) + gPlayer->pos.z - spE8;
|
||||
spB8.x = gPlayer[0].pos.x - spF0;
|
||||
spB8.y = gPlayer[0].pos.y - (spEC + 25.0f);
|
||||
spB8.z = gPlayer[0].pos.z + (gPlayer[0].vel.z * 15.0f) - spE8;
|
||||
}
|
||||
|
||||
Matrix_MultVec3fNoTranslate(gCalcMatrix, &spB8, &spAC);
|
||||
@@ -3099,13 +3097,13 @@ void func_80072594(Object_2F4* obj2F4) {
|
||||
}
|
||||
} else {
|
||||
if ((obj2F4->unk_0B8 == 0xE) || (obj2F4->unk_0B8 == 0xF)) {
|
||||
spCC = gPlayer->camEye.x;
|
||||
spC8 = gPlayer->camEye.y;
|
||||
spC4 = gPlayer->camEye.z;
|
||||
spCC = gPlayer[0].camEye.x;
|
||||
spC8 = gPlayer[0].camEye.y;
|
||||
spC4 = gPlayer[0].camEye.z;
|
||||
} else {
|
||||
spCC = gPlayer->pos.x;
|
||||
spC8 = gPlayer->pos.y;
|
||||
spC4 = gPlayer->pos.z;
|
||||
spCC = gPlayer[0].pos.x;
|
||||
spC8 = gPlayer[0].pos.y;
|
||||
spC4 = gPlayer[0].pos.z;
|
||||
}
|
||||
|
||||
Math_SmoothStepToAngle(&obj2F4->unk_2E8.z, 0.0f, 0.1f, 5.0f, 0.0001f);
|
||||
@@ -3366,7 +3364,7 @@ void func_80072594(Object_2F4* obj2F4) {
|
||||
obj2F4->vel.z -= D_80177D08;
|
||||
}
|
||||
|
||||
if (gPlayer->state_1C8 == PLAYERSTATE_1C8_8) {
|
||||
if (gPlayer[0].state_1C8 == PLAYERSTATE_1C8_8) {
|
||||
obj2F4->vel.z = 100.0f;
|
||||
}
|
||||
|
||||
@@ -4082,7 +4080,7 @@ void func_80074FF0(Object_2F4* obj2F4) {
|
||||
|
||||
case 103:
|
||||
case 104:
|
||||
func_E6A810_8018769C(obj2F4);
|
||||
func_E9F1D0_8018769C(obj2F4);
|
||||
break;
|
||||
|
||||
case 105:
|
||||
|
||||
+7
-9
@@ -1,8 +1,6 @@
|
||||
#include "global.h"
|
||||
#include "sf64dma.h"
|
||||
|
||||
extern void func_80187520(s32, void*);
|
||||
|
||||
f32 D_80161A10;
|
||||
f32 D_80161A14;
|
||||
s32 gPlayerInactive[4];
|
||||
@@ -247,15 +245,15 @@ void func_800A24DC(s32 arg0) {
|
||||
break;
|
||||
case DRAWMODE_1:
|
||||
func_8003DAF0();
|
||||
func_80187520(0x68, NULL);
|
||||
func_EBFBE0_80187520(104, NULL);
|
||||
break;
|
||||
case DRAWMODE_2:
|
||||
func_8003DAF0();
|
||||
func_80187520(0x6C, NULL);
|
||||
func_EBFBE0_80187520(108, NULL);
|
||||
break;
|
||||
case DRAW_MAP:
|
||||
func_8003DAF0();
|
||||
func_80187520(0x6A, NULL);
|
||||
func_EBFBE0_80187520(106, NULL);
|
||||
break;
|
||||
case DRAWMODE_4:
|
||||
gPlayerNum = arg0;
|
||||
@@ -263,7 +261,7 @@ void func_800A24DC(s32 arg0) {
|
||||
break;
|
||||
case DRAWMODE_5:
|
||||
func_8003DAF0();
|
||||
func_80187520(0x6E, NULL);
|
||||
func_EBFBE0_80187520(110, NULL);
|
||||
break;
|
||||
case DRAWMODE_6:
|
||||
func_800C2190();
|
||||
@@ -443,10 +441,10 @@ void func_800A26C0(void) {
|
||||
func_8001D8A8(2, gVolumeSettings[2]);
|
||||
break;
|
||||
case GSTATE_TITLE:
|
||||
func_80187520(0x67, NULL);
|
||||
func_EBFBE0_80187520(103, NULL);
|
||||
break;
|
||||
case GSTATE_MENU:
|
||||
func_80187520(0x6B, NULL);
|
||||
func_EBFBE0_80187520(107, NULL);
|
||||
break;
|
||||
case GSTATE_MAP:
|
||||
func_EBFBE0_8019E8D0();
|
||||
@@ -458,7 +456,7 @@ void func_800A26C0(void) {
|
||||
func_800B86CC();
|
||||
break;
|
||||
case GSTATE_GAME_OVER:
|
||||
func_80187520(0x6D, NULL);
|
||||
func_EBFBE0_80187520(109, NULL);
|
||||
break;
|
||||
case GSTATE_CREDITS:
|
||||
gDrawMode = DRAWMODE_8;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user