16.3004%
@ -267,6 +267,40 @@ typedef struct actor_animation_state {
|
||||
f32 animation_timer_4; // at 0x108
|
||||
} ActorAnimationState;
|
||||
|
||||
typedef struct {
|
||||
f32 unk0; // Used
|
||||
f32 unk4; // Used
|
||||
union {
|
||||
f32 unk8; // Used
|
||||
s32 unk8_s32; // Used // TODO: We might have another aaD situation here...
|
||||
};
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
s32 unk14;
|
||||
s32 unk18;
|
||||
s32 unk1C;
|
||||
s32 unk20;
|
||||
s32 unk24;
|
||||
s32 unk28;
|
||||
s32 unk2C;
|
||||
s32 unk30;
|
||||
s32 unk34;
|
||||
s32 unk38;
|
||||
s32 unk3C;
|
||||
s32 unk40;
|
||||
s32 unk44;
|
||||
s32 unk48;
|
||||
s32 unk4C;
|
||||
s32 unk50;
|
||||
s32 unk54;
|
||||
s32 unk58;
|
||||
s32 unk5C;
|
||||
s32 unk60;
|
||||
s32 unk64;
|
||||
s32 unk68;
|
||||
s32 unk6C;
|
||||
} Actor124;
|
||||
|
||||
typedef struct actor_178 {
|
||||
s16 unk0; // Used
|
||||
s16 unk2;
|
||||
@ -382,7 +416,9 @@ typedef struct {
|
||||
|
||||
struct actor_collision {
|
||||
u32 unk0; // Collision type?
|
||||
u32 unk4;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u16 unk6;
|
||||
Actor *collisionSource;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
@ -478,7 +514,6 @@ typedef struct yaad5 {
|
||||
s8 unk1E; // Used
|
||||
} YetAnotherAdditionalActorData5;
|
||||
|
||||
|
||||
typedef struct yet_another_additional_actor_data {
|
||||
Actor *unk0;
|
||||
u16 unk4;
|
||||
@ -893,7 +928,7 @@ struct actor {
|
||||
u32 unk118;
|
||||
Actor *unk11C;
|
||||
f32 unk120;
|
||||
u32 unk124;
|
||||
Actor124 *unk124;
|
||||
s16 shadow_opacity; // at 0x128, max value 0xFF
|
||||
s16 draw_distance; // at 0x12A
|
||||
s16 unk12C; // Used
|
||||
@ -908,7 +943,10 @@ struct actor {
|
||||
LedgeInfo *ledge_info_pointer; // at 0x140
|
||||
u8 noclip_byte; // at 0x144
|
||||
u8 unk145;
|
||||
u16 unk146; // used (0x147 hand state? 0x146 seems to be u16)
|
||||
union {
|
||||
u16 unk146; // used (0x147 hand state? 0x146 seems to be u16)
|
||||
s16 unk146_s16; // used func_8068A764
|
||||
};
|
||||
u32 unk148; // Used
|
||||
u32 unk14C; // Used
|
||||
void *unk150; // TODO: Floor Triangle Pointer
|
||||
|
@ -200,7 +200,7 @@ us,.code,func_8069FDA0,1004,no
|
||||
us,.code,func_80652B04,196,yes
|
||||
us,.code,func_806E9BA8,308,no
|
||||
us,.code,func_8067E278,108,yes
|
||||
us,.code,func_806A018C,356,no
|
||||
us,.code,func_806A018C,356,yes
|
||||
us,.code,func_80726164,844,no
|
||||
us,.code,func_80684BB0,488,no
|
||||
us,.code,func_806E8AF0,56,yes
|
||||
@ -322,7 +322,7 @@ us,.code,func_806644B0,264,no
|
||||
us,.code,func_8063D9D0,112,no
|
||||
us,.code,func_806FDB8C,912,no
|
||||
us,.code,func_80665AAC,32,no
|
||||
us,.code,func_8068A764,32,no
|
||||
us,.code,func_8068A764,32,yes
|
||||
us,.code,func_8070B324,1224,no
|
||||
us,.code,func_8060BEA8,220,no
|
||||
us,.code,func_806FA1A4,864,no
|
||||
@ -1096,7 +1096,7 @@ us,.code,func_80708BB8,108,yes
|
||||
us,.code,func_8068F72C,2068,no
|
||||
us,.code,func_80602488,16,yes
|
||||
us,.code,func_806C9F74,100,yes
|
||||
us,.code,func_80679200,144,no
|
||||
us,.code,func_80679200,144,yes
|
||||
us,.code,func_806E7658,180,yes
|
||||
us,.code,func_807370A4,244,no
|
||||
us,.code,func_8073A130,372,no
|
||||
@ -2517,7 +2517,7 @@ us,.code,func_806F4E74,72,yes
|
||||
us,.code,func_806B24B8,728,no
|
||||
us,.code,func_80732534,228,no
|
||||
us,.code,func_806ACA88,376,no
|
||||
us,.code,func_80679290,164,no
|
||||
us,.code,func_80679290,164,yes
|
||||
us,.code,func_8065996C,1092,no
|
||||
us,.code,func_80692640,768,no
|
||||
us,.code,func_8067470C,376,no
|
||||
@ -2545,7 +2545,7 @@ us,.code,func_806319C4,444,no
|
||||
us,.code,func_806B1F28,32,yes
|
||||
us,.code,func_806B904C,404,no
|
||||
us,.code,func_80658E58,52,yes
|
||||
us,.code,func_8069CF54,196,no
|
||||
us,.code,func_8069CF54,196,yes
|
||||
us,.code,func_80647508,264,yes
|
||||
us,.code,func_807127B4,64,yes
|
||||
us,.code,func_8065F5F0,36,no
|
||||
@ -2575,7 +2575,7 @@ us,.code,func_80672EBC,216,no
|
||||
us,.code,func_806C55E0,1600,no
|
||||
us,.code,func_80661054,528,no
|
||||
us,.code,func_80661484,76,yes
|
||||
us,.code,func_8062C99C,112,no
|
||||
us,.code,func_8062C99C,112,yes
|
||||
us,.code,func_80600080,244,yes
|
||||
us,.code,func_8070D020,92,yes
|
||||
us,.code,func_806A3700,12,yes
|
||||
@ -2683,7 +2683,7 @@ us,.code,func_806C43A8,108,yes
|
||||
us,.code,func_806BB32C,212,yes
|
||||
us,.code,func_80737EA4,104,no
|
||||
us,.code,func_806A6230,132,yes
|
||||
us,.code,func_8066F274,396,no
|
||||
us,.code,func_8066F274,396,yes
|
||||
us,.code,func_80642E34,400,no
|
||||
us,.code,func_806613E8,88,yes
|
||||
us,.code,func_80660D38,788,no
|
||||
@ -2728,7 +2728,7 @@ us,.code,func_806699C4,168,no
|
||||
us,.code,func_8066B06C,112,yes
|
||||
us,.code,func_8067BD28,144,yes
|
||||
us,.code,func_806BC148,100,yes
|
||||
us,.code,func_8068A784,44,no
|
||||
us,.code,func_8068A784,36,yes
|
||||
us,.code,func_8065EB10,1248,no
|
||||
us,.code,func_80639F1C,164,no
|
||||
us,.code,func_80718188,244,no
|
||||
|
|
@ -63,7 +63,7 @@ us,.code,func_80025168,512,no
|
||||
us,.code,func_800285DC,88,yes
|
||||
us,.code,func_8002A67C,68,yes
|
||||
us,.code,func_8002A758,408,no
|
||||
us,.code,func_8002A2AC,48,no
|
||||
us,.code,func_8002A2AC,48,yes
|
||||
us,.code,func_80029884,68,no
|
||||
us,.code,func_80024E70,180,no
|
||||
us,.code,func_800286D0,640,no
|
||||
|
|
@ -49,7 +49,7 @@ us,.code,func_8002D0B0,76,yes
|
||||
us,.code,func_80026D2C,440,no
|
||||
us,.code,func_800283D4,108,no
|
||||
us,.code,func_8002F304,104,yes
|
||||
us,.code,func_80027B30,160,no
|
||||
us,.code,func_80027B30,160,yes
|
||||
us,.code,func_8002BDDC,268,no
|
||||
us,.code,func_8002F90C,68,yes
|
||||
us,.code,func_800292B0,32,yes
|
||||
|
|
@ -200,7 +200,7 @@ us,.code,func_8069FDA0,1004,no
|
||||
us,.code,func_80652B04,196,yes
|
||||
us,.code,func_806E9BA8,308,no
|
||||
us,.code,func_8067E278,108,yes
|
||||
us,.code,func_806A018C,356,no
|
||||
us,.code,func_806A018C,356,yes
|
||||
us,.code,func_80726164,844,no
|
||||
us,.code,func_80684BB0,488,no
|
||||
us,.code,func_806E8AF0,56,yes
|
||||
@ -322,7 +322,7 @@ us,.code,func_806644B0,264,no
|
||||
us,.code,func_8063D9D0,112,no
|
||||
us,.code,func_806FDB8C,912,no
|
||||
us,.code,func_80665AAC,32,no
|
||||
us,.code,func_8068A764,32,no
|
||||
us,.code,func_8068A764,32,yes
|
||||
us,.code,func_8070B324,1224,no
|
||||
us,.code,func_8060BEA8,220,no
|
||||
us,.code,func_806FA1A4,864,no
|
||||
@ -1096,7 +1096,7 @@ us,.code,func_80708BB8,108,yes
|
||||
us,.code,func_8068F72C,2068,no
|
||||
us,.code,func_80602488,16,yes
|
||||
us,.code,func_806C9F74,100,yes
|
||||
us,.code,func_80679200,144,no
|
||||
us,.code,func_80679200,144,yes
|
||||
us,.code,func_806E7658,180,yes
|
||||
us,.code,func_807370A4,244,no
|
||||
us,.code,func_8073A130,372,no
|
||||
@ -2517,7 +2517,7 @@ us,.code,func_806F4E74,72,yes
|
||||
us,.code,func_806B24B8,728,no
|
||||
us,.code,func_80732534,228,no
|
||||
us,.code,func_806ACA88,376,no
|
||||
us,.code,func_80679290,164,no
|
||||
us,.code,func_80679290,164,yes
|
||||
us,.code,func_8065996C,1092,no
|
||||
us,.code,func_80692640,768,no
|
||||
us,.code,func_8067470C,376,no
|
||||
@ -2545,7 +2545,7 @@ us,.code,func_806319C4,444,no
|
||||
us,.code,func_806B1F28,32,yes
|
||||
us,.code,func_806B904C,404,no
|
||||
us,.code,func_80658E58,52,yes
|
||||
us,.code,func_8069CF54,196,no
|
||||
us,.code,func_8069CF54,196,yes
|
||||
us,.code,func_80647508,264,yes
|
||||
us,.code,func_807127B4,64,yes
|
||||
us,.code,func_8065F5F0,36,no
|
||||
@ -2575,7 +2575,7 @@ us,.code,func_80672EBC,216,no
|
||||
us,.code,func_806C55E0,1600,no
|
||||
us,.code,func_80661054,528,no
|
||||
us,.code,func_80661484,76,yes
|
||||
us,.code,func_8062C99C,112,no
|
||||
us,.code,func_8062C99C,112,yes
|
||||
us,.code,func_80600080,244,yes
|
||||
us,.code,func_8070D020,92,yes
|
||||
us,.code,func_806A3700,12,yes
|
||||
@ -2683,7 +2683,7 @@ us,.code,func_806C43A8,108,yes
|
||||
us,.code,func_806BB32C,212,yes
|
||||
us,.code,func_80737EA4,104,no
|
||||
us,.code,func_806A6230,132,yes
|
||||
us,.code,func_8066F274,396,no
|
||||
us,.code,func_8066F274,396,yes
|
||||
us,.code,func_80642E34,400,no
|
||||
us,.code,func_806613E8,88,yes
|
||||
us,.code,func_80660D38,788,no
|
||||
@ -2728,7 +2728,7 @@ us,.code,func_806699C4,168,no
|
||||
us,.code,func_8066B06C,112,yes
|
||||
us,.code,func_8067BD28,144,yes
|
||||
us,.code,func_806BC148,100,yes
|
||||
us,.code,func_8068A784,44,no
|
||||
us,.code,func_8068A784,36,yes
|
||||
us,.code,func_8065EB10,1248,no
|
||||
us,.code,func_80639F1C,164,no
|
||||
us,.code,func_80718188,244,no
|
||||
@ -3525,7 +3525,7 @@ us,.code,func_8002D0B0,76,yes
|
||||
us,.code,func_80026D2C,440,no
|
||||
us,.code,func_800283D4,108,no
|
||||
us,.code,func_8002F304,104,yes
|
||||
us,.code,func_80027B30,160,no
|
||||
us,.code,func_80027B30,160,yes
|
||||
us,.code,func_8002BDDC,268,no
|
||||
us,.code,func_8002F90C,68,yes
|
||||
us,.code,func_800292B0,32,yes
|
||||
@ -3856,7 +3856,7 @@ us,.code,func_80025168,512,no
|
||||
us,.code,func_800285DC,88,yes
|
||||
us,.code,func_8002A67C,68,yes
|
||||
us,.code,func_8002A758,408,no
|
||||
us,.code,func_8002A2AC,48,no
|
||||
us,.code,func_8002A2AC,48,yes
|
||||
us,.code,func_80029884,68,no
|
||||
us,.code,func_80024E70,180,no
|
||||
us,.code,func_800286D0,640,no
|
||||
|
|
@ -17,7 +17,7 @@
|
||||
<text x="38.5" y="14">global_asm</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">15.5884%</text>
|
||||
<text x="110.5" y="14">15.5884%</text>
|
||||
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">15.7057%</text>
|
||||
<text x="110.5" y="14">15.7057%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -9,7 +9,7 @@
|
||||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h47v20H0z"/>
|
||||
<path fill="#e03e00" d="M47 0h67v20H47z"/>
|
||||
<path fill="#e03f00" d="M47 0h67v20H47z"/>
|
||||
<path fill="url(#b)" d="M0 0h114v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
@ -17,7 +17,7 @@
|
||||
<text x="23.5" y="14">jetpac</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="81.5" y="15" fill="#010101" fill-opacity=".3">13.8951%</text>
|
||||
<text x="80.5" y="14">13.8951%</text>
|
||||
<text x="81.5" y="15" fill="#010101" fill-opacity=".3">14.0616%</text>
|
||||
<text x="80.5" y="14">14.0616%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -9,7 +9,7 @@
|
||||
</mask>
|
||||
<g mask="url(#anybadge_1)">
|
||||
<path fill="#555" d="M0 0h37v20H0z"/>
|
||||
<path fill="#e01b00" d="M37 0h60v20H37z"/>
|
||||
<path fill="#e01c00" d="M37 0h60v20H37z"/>
|
||||
<path fill="url(#b)" d="M0 0h97v20H0z"/>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
@ -17,7 +17,7 @@
|
||||
<text x="18.5" y="14">race</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="68.0" y="15" fill="#010101" fill-opacity=".3">5.9472%</text>
|
||||
<text x="67.0" y="14">5.9472%</text>
|
||||
<text x="68.0" y="15" fill="#010101" fill-opacity=".3">6.2813%</text>
|
||||
<text x="67.0" y="14">6.2813%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -17,7 +17,7 @@
|
||||
<text x="66.0" y="14">Donkey Kong 64 (US)</text>
|
||||
</g>
|
||||
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">16.2002%</text>
|
||||
<text x="165.5" y="14">16.2002%</text>
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">16.3004%</text>
|
||||
<text x="165.5" y="14">16.3004%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -11,6 +11,7 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_800029EC.s")
|
||||
|
||||
// Should be doable, surprisingly hard
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_80002A30.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_80002A64.s")
|
||||
|
@ -8,13 +8,12 @@ extern f32 D_80758160;
|
||||
extern f32 D_80758164;
|
||||
extern f64 D_80758168;
|
||||
|
||||
extern s32 D_807F5DE4;
|
||||
extern void *D_807F5DE4; // TODO: Actually a pointer to a struct (map model?)
|
||||
extern s32 D_807F5E60;
|
||||
extern s8 D_807F5FEC;
|
||||
extern s32 D_807F5FF4;
|
||||
extern s32 D_807F6C28;
|
||||
|
||||
extern s32 D_807F5DE4;
|
||||
extern s32 D_807F5E60;
|
||||
|
||||
void func_8062D0CC(s32, s32, s32, u8);
|
||||
@ -283,9 +282,31 @@ void func_8062C22C(void) {
|
||||
func_806364C4();
|
||||
}
|
||||
|
||||
// Displaylist Stuff
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062C29C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062C99C.s")
|
||||
// TODO: Just a s16*?
|
||||
typedef struct {
|
||||
s16 unk0;
|
||||
s16 unk2;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
s16 unk8;
|
||||
s16 unkA;
|
||||
s16 unkC;
|
||||
s16 unkE;
|
||||
} GlobalASMStruct_8062C99C;
|
||||
|
||||
void func_8062C99C(GlobalASMStruct_8062C99C *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
|
||||
arg0->unk0 = (arg3 - arg1) * 2;
|
||||
arg0->unk2 = (arg4 - arg2) * 2;
|
||||
arg0->unk4 = 0x1FF;
|
||||
arg0->unk6 = 0;
|
||||
arg0->unk8 = ((arg1 + arg3) / 2) * 4;
|
||||
arg0->unkA = ((arg2 + arg4) / 2) * 4;
|
||||
arg0->unkC = 0x1FF;
|
||||
arg0->unkE = 0;
|
||||
}
|
||||
|
||||
// TODO: What is the actual signature?
|
||||
void func_80630B70(s32, s32, f32, f32, f32, s32, s32, s32);
|
||||
@ -422,6 +443,8 @@ void func_8062E608(void *arg0, s32 *arg1, s32 arg2) {
|
||||
|
||||
f32 func_80612D10(f32);
|
||||
void func_80659DB0(f32, f32, s32 *, s32 *, f32, s32);
|
||||
void func_8063C390(void);
|
||||
void func_8065E040(s32);
|
||||
/*
|
||||
? func_8062B3C4(void *, s32 *);
|
||||
? func_8062B478(s32);
|
||||
@ -430,12 +453,10 @@ s32 func_8062BA74(void *);
|
||||
? func_8062F328(void *);
|
||||
? func_8062F3A0(void *, void *);
|
||||
? func_8062F420(void *, void *, void *);
|
||||
? func_8063C390();
|
||||
? func_80650ECC(void *);
|
||||
? func_80659110(s32);
|
||||
? func_8065996C(?);
|
||||
? func_8065CDA0(s32);
|
||||
? func_8065E040(s32);
|
||||
? func_8065F1C0(void *);
|
||||
? func_80662B90(void *);
|
||||
? func_806637C0(void *);
|
||||
@ -478,7 +499,6 @@ typedef struct {
|
||||
|
||||
extern f32 D_80758190;
|
||||
extern MapGeometryHeader *D_807F5DE0;
|
||||
// extern void *D_807F5DE4;
|
||||
extern void *D_807F5DE8;
|
||||
extern void *D_807F5DEC;
|
||||
extern s32 D_807F5E60;
|
||||
@ -511,6 +531,8 @@ void func_8062F318(void);
|
||||
void func_80659110(u8);
|
||||
void func_8065CDA0(u8);
|
||||
|
||||
void func_8065996C(s16);
|
||||
|
||||
/*
|
||||
void func_8062F050(MapGeometryHeader *arg0) {
|
||||
s32 sp50;
|
||||
@ -543,13 +565,13 @@ void func_8062F050(MapGeometryHeader *arg0) {
|
||||
D_807F5FEA = arg0->unk2C;
|
||||
temp_v1 = &D_807F5DE0->unk0 + arg0->unk40;
|
||||
D_807F5FD0 = *temp_v1 + 1;
|
||||
D_807F5FD4 = temp_v1 + 4;
|
||||
D_807F5FD4 = temp_v1 + 1;
|
||||
temp_a0 = &D_807F5DE0->unk0 + arg0->unk44;
|
||||
D_807F5FC8 = *temp_a0;
|
||||
D_807F5FCC = temp_a0 + 4;
|
||||
D_807F5FCC = temp_a0 + 1;
|
||||
temp_a1 = &D_807F5DE0->unk0 + arg0->unk48;
|
||||
D_807F5FC1 = *temp_a1;
|
||||
D_807F5FC4 = temp_a1 + 4;
|
||||
D_807F5FC4 = temp_a1 + 1;
|
||||
D_807F5DE4 = &D_807F5DE0->unk0 + arg0->unk30;
|
||||
D_807F5DE8 = &D_807F5DE0->unk0 + arg0->unk38;
|
||||
D_807F5DEC = &D_807F5DE0->unk0 + arg0->unk34;
|
||||
@ -608,6 +630,27 @@ s32 func_8062F388(s32 *arg0) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F3A0.s")
|
||||
|
||||
typedef struct {
|
||||
s32 unk0;
|
||||
union {
|
||||
void *texturePointer;
|
||||
s32 textureIndex;
|
||||
};
|
||||
} GlobalASMStruct_8062F3A0;
|
||||
|
||||
/*
|
||||
void func_8062F3A0(GlobalASMStruct_8062F3A0 *arg0, GlobalASMStruct_8062F3A0 *arg1) {
|
||||
while (arg0 != arg1) {
|
||||
if ((arg0->unk0 >> 0x18) == 0xFD) {
|
||||
if (((arg0->textureIndex << 4) >> 28) == 0) { // TODO: Bitfield?
|
||||
arg0->texturePointer = getPointerTableFile(0x19, arg0->textureIndex, 1, 0);
|
||||
}
|
||||
}
|
||||
arg0++;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F420.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F538.s")
|
||||
|
@ -425,6 +425,7 @@ void func_80636448(s32 arg0, s32 arg1, s32 arg2, s32 arg3, void *arg4) {
|
||||
new->unk10 = arg4;
|
||||
}
|
||||
|
||||
// Doable, small struct loop
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806364C4.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806365D0.s")
|
||||
|
@ -201,6 +201,20 @@ void func_80641A78(void) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641B00.s")
|
||||
|
||||
/*
|
||||
// TODO: Doable, just need to figure out object model2 behaviour pointer struct
|
||||
void func_80641B00(s16 arg0, s16 arg1, s16 arg2) {
|
||||
s32 sp1C;
|
||||
|
||||
arg0 = func_80659470(arg0);
|
||||
arg1 = func_80659470(arg1);
|
||||
D_807F6000[arg0].unk7C = malloc(0xA4);
|
||||
func_8063DED0(D_807F6000[arg0].unk7C, &D_807F6000);
|
||||
D_807F6000[arg0].unk7C->unk48 = arg2;
|
||||
D_807F6000[arg0].unk7C->unkA0 = D_807F6000[arg1].unk7C->unkA0;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641BCC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641C98.s")
|
||||
@ -827,6 +841,7 @@ void func_8064B900(s32 arg0, s32 arg1, s16 arg2, s32 arg3) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8064BAF4.s")
|
||||
|
||||
// TODO: This probably returns the result of func_805FF0C8, if not, this is cursed
|
||||
void func_8064BB4C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
func_805FF0C8();
|
||||
}
|
||||
|
@ -306,6 +306,8 @@ void func_8066EBF4(Actor *arg0) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066F06C.s")
|
||||
|
||||
u8 func_8066F274(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3);
|
||||
|
||||
u8 func_8066F1F8(s32 arg0, s16 arg1) {
|
||||
s16 sp1E;
|
||||
s16 sp1C;
|
||||
@ -319,12 +321,68 @@ u8 func_8066F1F8(s32 arg0, s16 arg1) {
|
||||
return D_807FB546;
|
||||
}
|
||||
|
||||
void func_8066F250() {
|
||||
void func_8066F250(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3) {
|
||||
D_807FB604 = 0;
|
||||
func_8066F274();
|
||||
func_8066F274(arg0, arg1, arg2, arg3);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066F274.s")
|
||||
void func_8066F400(Actor *);
|
||||
u8 func_8066F4AC(Actor *, s16 *, s16 *);
|
||||
u8 func_80670FA4(Actor *, s16 *, s16 *);
|
||||
void func_80672C70(s32);
|
||||
void func_80672E90(s32, s32, s32);
|
||||
void func_80674E14(Actor *);
|
||||
s8 func_80676ED0(Actor *, s16 *, s16 *);
|
||||
extern u8 D_807FB547;
|
||||
extern s8 D_807FB605;
|
||||
extern u8 D_807FB606;
|
||||
|
||||
u8 func_8066F274(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3) {
|
||||
LedgeInfo *temp_v0;
|
||||
u8 sp23;
|
||||
u8 sp22;
|
||||
|
||||
sp23 = 0;
|
||||
sp22 = 0;
|
||||
temp_v0 = arg0->ledge_info_pointer;
|
||||
if (arg0->object_properties_bitfield & 0x10000) {
|
||||
*arg1 = 0;
|
||||
*arg2 = 0xFFF;
|
||||
}
|
||||
if ((temp_v0 == NULL) || !(arg0->object_properties_bitfield & 0x10)) {
|
||||
*arg3 = 0;
|
||||
return 0;
|
||||
}
|
||||
func_80672E90(temp_v0->unk0, temp_v0->unk4, temp_v0->unk8);
|
||||
func_80672C70(arg0->unk58);
|
||||
D_807FB602 = 0;
|
||||
D_807FB547 = 0;
|
||||
D_807FB605 = 0;
|
||||
D_807FB606 = 0;
|
||||
if (arg0->noclip_byte & 0x20) {
|
||||
func_80674E14(arg0);
|
||||
}
|
||||
if (arg0->noclip_byte & 8) {
|
||||
sp23 = func_80670FA4(arg0, arg1, arg2);
|
||||
sp22 = func_8066F4AC(arg0, arg1, arg2);
|
||||
*arg3 = func_80676ED0(arg0, arg1, arg2);
|
||||
} else {
|
||||
*arg3 = 0;
|
||||
}
|
||||
func_8066F400(arg0);
|
||||
arg0->unkFD = D_807FB547;
|
||||
if (D_807FB606 != 0) {
|
||||
arg0->unk64 |= 0x100;
|
||||
} else {
|
||||
arg0->unk64 &= ~0x100;
|
||||
}
|
||||
return sp23 != 0 || sp22 != 0;
|
||||
// var_v1 = ;
|
||||
// if (var_v1 == 0) {
|
||||
// var_v1 = ;
|
||||
// }
|
||||
// return var_v1 & 0xFF;
|
||||
}
|
||||
|
||||
void func_8066F400(Actor *arg0) {
|
||||
if (D_807FB602) {
|
||||
@ -348,13 +406,16 @@ void func_8066F400(Actor *arg0) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FC0C.s")
|
||||
|
||||
// Jumptable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FD6C.s")
|
||||
|
||||
// Scales and rotates a matrix on the stack
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FE08.s")
|
||||
|
||||
// Jumptable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_80670548.s")
|
||||
|
||||
// Another matrix on the stack
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_80670C5C.s")
|
||||
|
||||
void func_80670F04(LedgeInfo *arg0) {
|
||||
|
@ -5,8 +5,49 @@
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672E90.s")
|
||||
|
||||
/*
|
||||
// TODO: Hmm, 64 bit nonsense?
|
||||
extern s32 D_807FB5A8;
|
||||
extern s32 D_807FB5AC;
|
||||
extern s32 D_807FB5B0;
|
||||
|
||||
void func_80672E90(s32 arg0, s32 arg1, s32 arg2) {
|
||||
D_807FB5A8 = arg0;
|
||||
D_807FB5AC = arg1;
|
||||
D_807FB5B0 = arg2;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672EBC.s")
|
||||
|
||||
/*
|
||||
// TODO: Hmm, 64 bit nonsense?
|
||||
void func_80672F94(s16, s64);
|
||||
extern s32 D_807FB5E0;
|
||||
extern s32 D_807FB5E4;
|
||||
extern s16 D_807FB5E8;
|
||||
extern s16 D_807FB5F4;
|
||||
|
||||
void func_80672EBC(s64 arg0, s64 arg2) {
|
||||
s64 sp10;
|
||||
s64 sp8;
|
||||
s16 var_a0;
|
||||
s64 var_a2;
|
||||
|
||||
var_a2 = arg2;
|
||||
sp8 = arg0;
|
||||
sp10 = var_a2;
|
||||
if ((arg0 > 0) && (var_a2 > 0)) {
|
||||
var_a2 = (var_a2 / D_807FB5E4) * D_807FB5E8;
|
||||
var_a0 = (arg0 / D_807FB5E0) + var_a2;
|
||||
} else {
|
||||
var_a0 = 0;
|
||||
}
|
||||
D_807FB5F4 = var_a0;
|
||||
func_80672F94(var_a0, var_a2);
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672F94.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_806730A4.s")
|
||||
|
@ -35,7 +35,7 @@ void func_806136B4();
|
||||
void func_8066E21C(LedgeInfo*);
|
||||
// void func_80679200(s32, Actor *, s32, s32, s32, s32);
|
||||
// Note: The pointer can be to any one of the above 10 structs, maybe more
|
||||
void func_80679200(s32, s32, s32, s32, s32, void*);
|
||||
void func_80679200(Actor *arg0, Actor *arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5);
|
||||
void func_8067AEFC(Actor*);
|
||||
void func_8068C2F8(void *);
|
||||
void func_8070DA74(void *);
|
||||
@ -513,34 +513,64 @@ void func_806791EC(Actor *arg0, s32 arg1) {
|
||||
arg0->unk138 &= ~arg1;
|
||||
}
|
||||
|
||||
// Doable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679200.s")
|
||||
ActorCollision *func_80679490(Actor *, s32, u8, s32, s32);
|
||||
s32 func_8067AF44(Actor* arg0);
|
||||
|
||||
// Doable
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679290.s")
|
||||
// TODO: Clean this up
|
||||
void func_80679200(Actor *arg0, Actor *arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5) {
|
||||
ActorCollision **sp28;
|
||||
ActorCollision **var_v1;
|
||||
ActorCollision *var_t0;
|
||||
ActorCollision *temp_v0;
|
||||
ActorCollision *var_v0;
|
||||
|
||||
var_t0 = NULL;
|
||||
if (func_8067AF44(arg0) != 0) {
|
||||
var_v0 = arg0->collision_queue_pointer;
|
||||
var_v1 = &arg0->collision_queue_pointer;
|
||||
if (var_v0 != NULL) {
|
||||
do {
|
||||
var_v1 = &var_v0->next;
|
||||
var_t0 = var_v0;
|
||||
var_v0 = var_v0->next;
|
||||
} while (var_v0 != NULL);
|
||||
}
|
||||
sp28 = var_v1;
|
||||
temp_v0 = func_80679490(arg1, arg2, arg3, arg4, arg5);
|
||||
*var_v1 = temp_v0;
|
||||
temp_v0->prev = var_t0;
|
||||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
ActorCollision *unk0;
|
||||
Actor *unk4;
|
||||
s32 unk8;
|
||||
} Struct807FBF18;
|
||||
|
||||
extern Struct807FBF18 D_807FBF18[];
|
||||
extern s16 D_807FBFD8;
|
||||
|
||||
void func_80679290(Actor *arg0, s32 arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5, s32 arg6) {
|
||||
if (D_807FBFD8 == 0x10) {
|
||||
func_80732354(0xF, 0, 0, 0);
|
||||
}
|
||||
D_807FBF18[D_807FBFD8].unk0 = func_80679490(arg1, arg2, arg3, arg4, arg5);
|
||||
D_807FBF18[D_807FBFD8].unk4 = arg0;
|
||||
D_807FBF18[D_807FBFD8].unk8 = arg6;
|
||||
D_807FBFD8++;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679334.s")
|
||||
|
||||
// TODO: What type is this actually?
|
||||
typedef struct {
|
||||
s32 unk0;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
s16 unk6;
|
||||
s32 unk8;
|
||||
s32 unkC;
|
||||
s32 unk10;
|
||||
s32 unk14;
|
||||
} GlobalASMStruct39;
|
||||
|
||||
GlobalASMStruct39 *func_80679490(s32 arg0, s32 arg1, u8 arg2, s32 arg3, s32 arg4) {
|
||||
GlobalASMStruct39 *temp_v0 = malloc(0x1C);
|
||||
ActorCollision *func_80679490(Actor * arg0, s32 arg1, u8 arg2, s32 arg3, s32 arg4) {
|
||||
ActorCollision *temp_v0 = malloc(sizeof(ActorCollision));
|
||||
temp_v0->unk0 = arg1;
|
||||
temp_v0->unk4 = arg2;
|
||||
temp_v0->unk8 = arg0;
|
||||
temp_v0->collisionSource = arg0;
|
||||
temp_v0->unkC = arg3;
|
||||
temp_v0->unk10 = arg4;
|
||||
temp_v0->unk14 = 0;
|
||||
temp_v0->next = NULL;
|
||||
return temp_v0;
|
||||
}
|
||||
|
||||
|
@ -58,6 +58,10 @@ void func_8068A4C8(s32 arg0, s32 arg1, s32 arg2) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A508.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A764.s")
|
||||
void func_8068A764(Actor *arg0, u8 arg1) {
|
||||
arg0->unk146_s16 |= 1 << arg1;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A784.s")
|
||||
void func_8068A784(Actor *arg0, u8 arg1) {
|
||||
arg0->unk146_s16 &= ~(1 << arg1);
|
||||
}
|
||||
|
@ -112,10 +112,8 @@ void func_8069CD9C(void) {
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_9DD70/func_8069CF54.s")
|
||||
void func_80689114(s32, f32, f32, f32, s32, f32, Actor*);
|
||||
|
||||
/*
|
||||
// TODO: Actor->unk124, not sure how it works...
|
||||
void func_8069CF54(void) {
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
current_actor_pointer->unk130 = 0x3C;
|
||||
@ -123,11 +121,10 @@ void func_8069CF54(void) {
|
||||
func_80689114(0x83, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0, 1.0f, current_actor_pointer);
|
||||
}
|
||||
func_8069B908();
|
||||
if ((!(current_actor_pointer->object_properties_bitfield & 0x10)) && (current_actor_pointer->unk124->unk8 == 1) && isFlagSet(0xFD, FLAG_TYPE_PERMANENT)) {
|
||||
if ((!(current_actor_pointer->object_properties_bitfield & 0x10)) && (current_actor_pointer->unk124->unk8_s32 == 1) && isFlagSet(0xFD, FLAG_TYPE_PERMANENT)) {
|
||||
current_actor_pointer->unk132 = 4;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
void func_8069D018(void) {
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
|
@ -72,8 +72,39 @@ s32 func_8069EF50(s16 arg0, s16 arg1, s16 arg2, s16 arg3, f32 arg4) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_8069FDA0.s")
|
||||
|
||||
// Doable, actor->unk124 pointer stuff
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_806A018C.s")
|
||||
extern f32 D_80750394;
|
||||
|
||||
// TODO: Add to aaD union
|
||||
typedef struct {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
} AAD_806A018C;
|
||||
|
||||
void func_80665564(Actor*, f32);
|
||||
|
||||
void func_806A018C(void) {
|
||||
AAD_806A018C *temp_s1;
|
||||
|
||||
temp_s1 = current_actor_pointer->additional_actor_data;
|
||||
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
|
||||
current_actor_pointer->unkB8 = current_actor_pointer->unk124->unk0;
|
||||
current_actor_pointer->unkEE = current_actor_pointer->unk124->unk4;
|
||||
current_actor_pointer->y_velocity = current_actor_pointer->unk124->unk8;
|
||||
current_actor_pointer->noclip_byte = 1;
|
||||
temp_s1->unk0 = (rand() >> 0xF) % 70;
|
||||
temp_s1->unk4 = (rand() >> 0xF) % 200;
|
||||
}
|
||||
func_8067ACB4(current_actor_pointer);
|
||||
func_806651FC(current_actor_pointer);
|
||||
func_80665564(current_actor_pointer, 0);
|
||||
current_actor_pointer->y_velocity += D_80750394;
|
||||
current_actor_pointer->z_rotation += temp_s1->unk4;
|
||||
current_actor_pointer->x_rotation += temp_s1->unk0;
|
||||
if ((current_actor_pointer->unkFC != 0) || ((current_actor_pointer->unk6A & 1) && !(current_actor_pointer->unk6C & 1))) {
|
||||
func_806782C0(current_actor_pointer);
|
||||
}
|
||||
func_806319C4(current_actor_pointer, 0);
|
||||
}
|
||||
|
||||
void func_806A02F0(void) {
|
||||
func_806A018C();
|
||||
|
@ -147,8 +147,13 @@ void func_8002A254(JetpacStruct *arg0) {
|
||||
func_8002A374();
|
||||
}
|
||||
|
||||
extern s32 D_8002E890;
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002A2AC.s")
|
||||
void func_8002A2AC(JetpacStruct *arg0) {
|
||||
arg0->unk28 = 8;
|
||||
arg0->unk4C = &D_8002E890;
|
||||
func_8002A254(arg0);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002A2DC.s")
|
||||
|
||||
@ -246,8 +251,10 @@ void func_8002A944(JetpacStruct *arg0) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002ABDC.s")
|
||||
|
||||
// Pretty doable, small loop over JetpacStruct array, some nonsense going on with the stack/temp vars though
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002AD8C.s")
|
||||
|
||||
// Displaylist stuff
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002AE00.s")
|
||||
|
||||
extern s8 D_80045BE0;
|
||||
|
@ -65,6 +65,58 @@ s32 func_8002578C(s32 arg0, s32 arg1) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80025E9C.s")
|
||||
|
||||
/*
|
||||
void func_80025E9C(Actor *arg0) {
|
||||
RaceAdditionalActorData *sp54;
|
||||
Actor *sp40;
|
||||
Actor *sp3C;
|
||||
Actor *temp_s2;
|
||||
Actor *temp_v0;
|
||||
Actor *temp_v1_2;
|
||||
Actor178 *temp_s0_2;
|
||||
Actor178 *temp_s1;
|
||||
Actor17C *temp_s1_2;
|
||||
RaceAdditionalActorData *temp_s0;
|
||||
void *temp_v1;
|
||||
|
||||
sp54 = arg0->additional_actor_data;
|
||||
func_8002BBD0(2);
|
||||
func_80677FA8(0x12E, 0x95);
|
||||
temp_s2 = D_807FBB44;
|
||||
temp_s0 = temp_s2->additional_actor_data;
|
||||
func_8002BC2C(arg0, 1, temp_s2, temp_s0);
|
||||
temp_s0->unk37 = 0;
|
||||
temp_s0->unk27 = 0;
|
||||
temp_s0->unk30 = arg0;
|
||||
temp_s0->unk36 = 1;
|
||||
temp_s0->unk28 = 0;
|
||||
temp_s1 = temp_s2->unk178;
|
||||
temp_v0 = func_807271F4(1, 0, 0, 0, 0, 0, 0);
|
||||
sp40 = temp_v0;
|
||||
temp_s1->unk30 = temp_v0;
|
||||
temp_v1 = temp_v0->unk184;
|
||||
temp_v1->unk4 = temp_s0;
|
||||
temp_v1->unk0 = temp_s2;
|
||||
func_80677FA8(0x130, 0);
|
||||
temp_v1_2 = D_807FBB44;
|
||||
temp_s1->unk34 = temp_v1_2;
|
||||
temp_s0_2 = sp40->unk178;
|
||||
sp3C = temp_v1_2;
|
||||
func_8002BC2C(arg0, 0, sp40, temp_s0_2);
|
||||
temp_s0_2->unk37 = 0;
|
||||
temp_s0_2->unk27 = 1;
|
||||
temp_s0_2->unk30 = arg0;
|
||||
temp_s0_2->unk36 = 0;
|
||||
temp_s1_2 = sp40->unk17C;
|
||||
temp_s1_2->unk30 = temp_s2;
|
||||
temp_s1_2->unk34 = temp_v1_2;
|
||||
temp_v1_2->RaaD->unk30 = arg0;
|
||||
temp_v1_2->unk178->unk30 = temp_s2;
|
||||
D_80750AC4 = 0;
|
||||
sp54->unk25 = 1;
|
||||
}
|
||||
*/
|
||||
|
||||
extern void func_8002CFF0();
|
||||
|
||||
void func_80025FDC() {
|
||||
@ -126,6 +178,32 @@ void func_80026050(RaceStruct6 *arg0, RaceStruct6 *arg1, s32 arg2) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80026098.s")
|
||||
|
||||
/*
|
||||
f32 func_8000AC60(f32, f32);
|
||||
f32 func_80612794(s16);
|
||||
f32 func_80665E48(f32, f32, f32, f32);
|
||||
extern f64 D_8002FDD8;
|
||||
extern f64 D_8002FDE0;
|
||||
extern f64 D_8002FDE8;
|
||||
|
||||
void func_80026098(void *arg0, void *arg1) {
|
||||
s16 sp2E;
|
||||
f32 sp24;
|
||||
f32 temp_f14;
|
||||
f32 temp_f2;
|
||||
f32 temp_f2_2;
|
||||
|
||||
sp2E = (func_80665E48(arg0->unk0, arg0->unk8, arg1->unk0, arg1->unk8) * 2048.0) / D_8002FDD8;
|
||||
temp_f2 = arg1->unk8 - arg0->unk8;
|
||||
temp_f14 = arg1->unk0 - arg0->unk0;
|
||||
sp24 = current_actor_pointer->unkB8 * D_8002FDE0 * func_8000AC60((temp_f2 * temp_f2) + (temp_f14 * temp_f14), temp_f14);
|
||||
current_actor_pointer->x_position = (func_80612794(sp2E) * sp24) + arg1->unk0;
|
||||
current_actor_pointer->z_position = (func_80612790(sp2E) * sp24) + arg1->unk8;
|
||||
temp_f2_2 = current_actor_pointer->y_position;
|
||||
current_actor_pointer->y_position = ((arg0->unk4 - temp_f2_2) * D_8002FDE8) + temp_f2_2;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_800261E0.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80026354.s")
|
||||
@ -173,7 +251,27 @@ void func_80027AF8(RaceStruct3 *arg0, s8 arg1) {
|
||||
arg0->unk8 = 0.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80027B30.s")
|
||||
s32 func_806119A0(void);
|
||||
|
||||
void func_80027B30(RaceStruct3 *arg0) {
|
||||
|
||||
switch (arg0->unk0) {
|
||||
case 0:
|
||||
arg0->unk1++;
|
||||
break;
|
||||
case 1:
|
||||
if ((u8)func_806119A0() >= 0x80U) {
|
||||
arg0->unk1++;
|
||||
} else {
|
||||
arg0->unk1--;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
arg0->unk1--;
|
||||
break;
|
||||
}
|
||||
arg0->unk8 = 0.0f;
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80027BD0.s")
|
||||
|
||||
@ -527,6 +625,7 @@ void func_8002DC24(void) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_8002DCF0.s")
|
||||
|
||||
|
||||
typedef struct RaceStruct14 {
|
||||
s32 unk0;
|
||||
s32 unk4;
|
||||
@ -545,6 +644,8 @@ typedef struct RaceAdditionalActorData3 {
|
||||
u8 unk8; // Used
|
||||
} RaceAdditionalActorData3;
|
||||
|
||||
void func_8002DCF0(RaceStruct14 *arg0, s32 arg1);
|
||||
|
||||
/*
|
||||
// TODO: Doable, pretty close
|
||||
void func_8002DCF0(RaceStruct14 *arg0, s32 arg1) {
|
||||
@ -759,16 +860,16 @@ typedef struct RaceStruct13 {
|
||||
u16 unk3C;
|
||||
} RaceStruct13;
|
||||
|
||||
s32 func_8002F36C(s32, s32);
|
||||
s32 func_8002E9AC(u8);
|
||||
void func_8002F36C(s32, s32);
|
||||
s32 func_8002E9AC(s32);
|
||||
|
||||
/*
|
||||
// TODO: Regalloc, boo
|
||||
void func_8002F420(RaceStruct13 *arg0, RaceStruct13 *arg1) {
|
||||
if (arg1->unk8) {
|
||||
if (arg0->unk3A == arg0->unk3C) {
|
||||
if (arg0->unk3C == arg0->unk3A) {
|
||||
u8 temp2 = arg1->unk4[arg0->unk3C] & 0xFF;
|
||||
s32 temp = func_8002E9AC(temp2);
|
||||
s32 temp = func_8002E9AC(temp2); // TODO: This might take 2 params
|
||||
func_8002DCF0(temp, 0);
|
||||
func_8002F36C(arg0, arg1);
|
||||
}
|
||||
|