mirror of
https://github.com/izzy2lost/Diddy-Kong-Racing.git
synced 2026-06-19 01:16:26 -07:00
Merge pull request #205 from DavidSM64/objects
Decompiled func_80033DD0, 20% milestone reached
This commit is contained in:
@@ -113,19 +113,20 @@ s32 is_drumstick_unlocked(void) {
|
||||
}
|
||||
```
|
||||
|
||||
As of Feburary 7th, 2022, this is our current score:
|
||||
As of Feburary 8th, 2022, this is our current score:
|
||||
```
|
||||
=====================================================================
|
||||
ADVENTURE ONE (ASM -> C Decompilation)
|
||||
-------------------------- 19.81% Complete --------------------------
|
||||
# Decompiled functions: 1023
|
||||
# GLOBAL_ASM remaining: 725
|
||||
-------------------------- 20.02% Complete --------------------------
|
||||
# Decompiled functions: 1026
|
||||
# GLOBAL_ASM remaining: 722
|
||||
# NON_MATCHING functions: 3
|
||||
# NON_EQUIVALENT WIP functions: 93
|
||||
---------------------------- Game Status ----------------------------
|
||||
Balloons: 11/47, Keys: 1/4, Trophies: 0/5
|
||||
T.T. Amulets: 1/4, Wizpig Amulets: 0/4
|
||||
---------------------------------------------------------------------
|
||||
We are collecting silver coins in Hot Top Volcano. (0/8 silver coins)
|
||||
We are collecting silver coins in Hot Top Volcano. (1/8 silver coins)
|
||||
=====================================================================
|
||||
ADVENTURE TWO (Cleanup & Documentation)
|
||||
-------------------------- 2.54% Complete --------------------------
|
||||
@@ -136,7 +137,7 @@ As of Feburary 7th, 2022, this is our current score:
|
||||
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
|
||||
---------------------------------------------------------------------
|
||||
We are collecting the second balloon on Timber's Island.
|
||||
=====================================================================
|
||||
=====================================================================
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -1,102 +0,0 @@
|
||||
glabel func_80033DD0
|
||||
/* 0349D0 80033DD0 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 0349D4 80033DD4 AFBF0024 */ sw $ra, 0x24($sp)
|
||||
/* 0349D8 80033DD8 AFB00020 */ sw $s0, 0x20($sp)
|
||||
/* 0349DC 80033DDC 8C82004C */ lw $v0, 0x4c($a0)
|
||||
/* 0349E0 80033DE0 00808025 */ move $s0, $a0
|
||||
/* 0349E4 80033DE4 10400054 */ beqz $v0, .L80033F38
|
||||
/* 0349E8 80033DE8 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
/* 0349EC 80033DEC 848E007C */ lh $t6, 0x7c($a0)
|
||||
/* 0349F0 80033DF0 24830078 */ addiu $v1, $a0, 0x78
|
||||
/* 0349F4 80033DF4 19C00007 */ blez $t6, .L80033E14
|
||||
/* 0349F8 80033DF8 00000000 */ nop
|
||||
/* 0349FC 80033DFC 846F0004 */ lh $t7, 4($v1)
|
||||
/* 034A00 80033E00 00000000 */ nop
|
||||
/* 034A04 80033E04 01E5C023 */ subu $t8, $t7, $a1
|
||||
/* 034A08 80033E08 A4780004 */ sh $t8, 4($v1)
|
||||
/* 034A0C 80033E0C 8C82004C */ lw $v0, 0x4c($a0)
|
||||
/* 034A10 80033E10 00000000 */ nop
|
||||
.L80033E14:
|
||||
/* 034A14 80033E14 84590014 */ lh $t9, 0x14($v0)
|
||||
/* 034A18 80033E18 26030078 */ addiu $v1, $s0, 0x78
|
||||
/* 034A1C 80033E1C 33280040 */ andi $t0, $t9, 0x40
|
||||
/* 034A20 80033E20 11000032 */ beqz $t0, .L80033EEC
|
||||
/* 034A24 80033E24 00000000 */ nop
|
||||
/* 034A28 80033E28 84690004 */ lh $t1, 4($v1)
|
||||
/* 034A2C 80033E2C 2404013C */ li $a0, 316
|
||||
/* 034A30 80033E30 1D20002E */ bgtz $t1, .L80033EEC
|
||||
/* 034A34 80033E34 240A0004 */ li $t2, 4
|
||||
/* 034A38 80033E38 8E05000C */ lw $a1, 0xc($s0)
|
||||
/* 034A3C 80033E3C 8E060010 */ lw $a2, 0x10($s0)
|
||||
/* 034A40 80033E40 8E070014 */ lw $a3, 0x14($s0)
|
||||
/* 034A44 80033E44 AFA30028 */ sw $v1, 0x28($sp)
|
||||
/* 034A48 80033E48 AFA00014 */ sw $zero, 0x14($sp)
|
||||
/* 034A4C 80033E4C 0C002556 */ jal func_80009558
|
||||
/* 034A50 80033E50 AFAA0010 */ sw $t2, 0x10($sp)
|
||||
/* 034A54 80033E54 8E0B004C */ lw $t3, 0x4c($s0)
|
||||
/* 034A58 80033E58 8FA30028 */ lw $v1, 0x28($sp)
|
||||
/* 034A5C 80033E5C 8D6C0000 */ lw $t4, ($t3)
|
||||
/* 034A60 80033E60 240D071C */ li $t5, 1820
|
||||
/* 034A64 80033E64 240E000A */ li $t6, 10
|
||||
/* 034A68 80033E68 A46D0006 */ sh $t5, 6($v1)
|
||||
/* 034A6C 80033E6C A46E0004 */ sh $t6, 4($v1)
|
||||
/* 034A70 80033E70 0C0270F2 */ jal get_number_of_active_players
|
||||
/* 034A74 80033E74 AC6C0000 */ sw $t4, ($v1)
|
||||
/* 034A78 80033E78 8FA30028 */ lw $v1, 0x28($sp)
|
||||
/* 034A7C 80033E7C 28410002 */ slti $at, $v0, 2
|
||||
/* 034A80 80033E80 1020001F */ beqz $at, .L80033F00
|
||||
/* 034A84 80033E84 00000000 */ nop
|
||||
/* 034A88 80033E88 8E0F0040 */ lw $t7, 0x40($s0)
|
||||
/* 034A8C 80033E8C 24010001 */ li $at, 1
|
||||
/* 034A90 80033E90 81E20057 */ lb $v0, 0x57($t7)
|
||||
/* 034A94 80033E94 00000000 */ nop
|
||||
/* 034A98 80033E98 18400019 */ blez $v0, .L80033F00
|
||||
/* 034A9C 80033E9C 00000000 */ nop
|
||||
/* 034AA0 80033EA0 14410003 */ bne $v0, $at, .L80033EB0
|
||||
/* 034AA4 80033EA4 00002025 */ move $a0, $zero
|
||||
/* 034AA8 80033EA8 10000006 */ b .L80033EC4
|
||||
/* 034AAC 80033EAC 00003025 */ move $a2, $zero
|
||||
.L80033EB0:
|
||||
/* 034AB0 80033EB0 2445FFFF */ addiu $a1, $v0, -1
|
||||
/* 034AB4 80033EB4 0C01BE53 */ jal get_random_number_from_range
|
||||
/* 034AB8 80033EB8 AFA30028 */ sw $v1, 0x28($sp)
|
||||
/* 034ABC 80033EBC 8FA30028 */ lw $v1, 0x28($sp)
|
||||
/* 034AC0 80033EC0 00403025 */ move $a2, $v0
|
||||
.L80033EC4:
|
||||
/* 034AC4 80033EC4 24180001 */ li $t8, 1
|
||||
/* 034AC8 80033EC8 00D8C804 */ sllv $t9, $t8, $a2
|
||||
/* 034ACC 80033ECC AE190074 */ sw $t9, 0x74($s0)
|
||||
/* 034AD0 80033ED0 AFA30028 */ sw $v1, 0x28($sp)
|
||||
/* 034AD4 80033ED4 02002025 */ move $a0, $s0
|
||||
/* 034AD8 80033ED8 0C02BF0F */ jal func_800AFC3C
|
||||
/* 034ADC 80033EDC 24050002 */ li $a1, 2
|
||||
/* 034AE0 80033EE0 8FA30028 */ lw $v1, 0x28($sp)
|
||||
/* 034AE4 80033EE4 10000007 */ b .L80033F04
|
||||
/* 034AE8 80033EE8 84690006 */ lh $t1, 6($v1)
|
||||
.L80033EEC:
|
||||
/* 034AEC 80033EEC 84680004 */ lh $t0, 4($v1)
|
||||
/* 034AF0 80033EF0 00000000 */ nop
|
||||
/* 034AF4 80033EF4 1D000002 */ bgtz $t0, .L80033F00
|
||||
/* 034AF8 80033EF8 00000000 */ nop
|
||||
/* 034AFC 80033EFC AC600000 */ sw $zero, ($v1)
|
||||
.L80033F00:
|
||||
/* 034B00 80033F00 84690006 */ lh $t1, 6($v1)
|
||||
.L80033F04:
|
||||
/* 034B04 80033F04 00000000 */ nop
|
||||
/* 034B08 80033F08 A6090004 */ sh $t1, 4($s0)
|
||||
/* 034B0C 80033F0C 846A0006 */ lh $t2, 6($v1)
|
||||
/* 034B10 80033F10 00000000 */ nop
|
||||
/* 034B14 80033F14 000A0823 */ negu $at, $t2
|
||||
/* 034B18 80033F18 00015880 */ sll $t3, $at, 2
|
||||
/* 034B1C 80033F1C 01615823 */ subu $t3, $t3, $at
|
||||
/* 034B20 80033F20 000B58C0 */ sll $t3, $t3, 3
|
||||
/* 034B24 80033F24 01615821 */ addu $t3, $t3, $at
|
||||
/* 034B28 80033F28 000B58C0 */ sll $t3, $t3, 3
|
||||
/* 034B2C 80033F2C 000B6203 */ sra $t4, $t3, 8
|
||||
/* 034B30 80033F30 A46C0006 */ sh $t4, 6($v1)
|
||||
/* 034B34 80033F34 8FBF0024 */ lw $ra, 0x24($sp)
|
||||
.L80033F38:
|
||||
/* 034B38 80033F38 8FB00020 */ lw $s0, 0x20($sp)
|
||||
/* 034B3C 80033F3C 03E00008 */ jr $ra
|
||||
/* 034B40 80033F40 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
|
||||
+3
-2
@@ -481,7 +481,8 @@ typedef struct Object_40 {
|
||||
s8 unk53;
|
||||
s8 unk54;
|
||||
s8 unk55; //size of array pointed by Object->unk68
|
||||
u8 pad56[0x02];
|
||||
u8 pad56;
|
||||
s8 unk57;
|
||||
u8 pad58[0x18];
|
||||
u8 unk70;
|
||||
u8 unk71;
|
||||
@@ -520,7 +521,7 @@ typedef struct Object_4C {
|
||||
u8 unk11;
|
||||
u8 unk12;
|
||||
u8 unk13;
|
||||
u16 unk14;
|
||||
s16 unk14;
|
||||
s8 unk16;
|
||||
s8 unk17;
|
||||
} Object_4C;
|
||||
|
||||
+32
-1
@@ -174,7 +174,38 @@ void func_80033CC0(Object *arg0, LevelObjectEntry80033CC0 *arg1) {
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80033CC0.s")
|
||||
#endif
|
||||
|
||||
GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80033DD0.s")
|
||||
void func_80033DD0(Object *obj, s32 arg1) {
|
||||
Object78_80033DD0 *obj78;
|
||||
s32 temp_v0;
|
||||
|
||||
if (obj->unk4C != NULL) {
|
||||
obj78 = &obj->unk78;
|
||||
if (obj->unk7C.half.upper > 0) {
|
||||
obj78->unk4 -= arg1;
|
||||
}
|
||||
if ((obj->unk4C->unk14 & 0x40) && ((s32) obj78->unk4 <= 0)) {
|
||||
func_80009558(316, obj->x_position, obj->y_position, obj->z_position, 4, NULL);
|
||||
obj78->unk0 = (s32*) obj->unk4C->unk0;
|
||||
obj78->unk6 = 1820;
|
||||
obj78->unk4 = 10;
|
||||
if (get_number_of_active_players() < 2) {
|
||||
if (obj->descriptor_ptr->unk57 > 0) {
|
||||
if (obj->descriptor_ptr->unk57 == 1) {
|
||||
temp_v0 = 0;
|
||||
} else {
|
||||
temp_v0 = get_random_number_from_range(0, obj->descriptor_ptr->unk57 - 1);
|
||||
}
|
||||
obj->unk74 = 1 << temp_v0;
|
||||
func_800AFC3C(obj, 2);
|
||||
}
|
||||
}
|
||||
} else if (obj78->unk4 <= 0) {
|
||||
obj78->unk0 = 0;
|
||||
}
|
||||
obj->z_rotation = (s16) obj78->unk6;
|
||||
obj78->unk6 = (obj78->unk6 * -200) >> 8;
|
||||
}
|
||||
}
|
||||
|
||||
void func_80033F44(Object *arg0, s32 arg1) {
|
||||
arg0->unk4C->unk14 = 2;
|
||||
|
||||
@@ -7,6 +7,12 @@
|
||||
#define WORLD_KEY_GRAB_CHECK_RADIUS 50
|
||||
#define SOUND_WORLD_KEY_GRAB 54
|
||||
|
||||
typedef struct Object78_80033DD0 {
|
||||
s32 *unk0;
|
||||
s16 unk4;
|
||||
s16 unk6;
|
||||
} Object78_80033DD0;
|
||||
|
||||
typedef struct unk80034530 {
|
||||
u8 pad0[0x8];
|
||||
u8 unk8;
|
||||
|
||||
Reference in New Issue
Block a user