From 59e17f2fe989e6a9d905812a3b211b00fd23888d Mon Sep 17 00:00:00 2001 From: tonyspumoni <94409037+tonyspumoni@users.noreply.github.com> Date: Mon, 31 Oct 2022 12:36:17 -0600 Subject: [PATCH] D_80126CD4->gRaceStartShowHudStep and name get_object_render_stack_pos (#272) * D_80126CD4->gRaceStartShowHudStep and name get_object_render_stack_pos * add documentation for global var --- asm/non_matchings/game_ui/func_8009F034.s | 4 +-- asm/non_matchings/game_ui/func_800A3CE4.s | 28 +++++++++---------- asm/non_matchings/game_ui/func_800A7A60.s | 2 +- asm/non_matchings/objects/func_80012F94.s | 2 +- .../unknown_0255E0/func_80027568.s | 2 +- .../unknown_0255E0/func_80028CD0.s | 6 ++-- .../unknown_032760/obj_loop_weather.s | 2 +- src/camera.c | 2 +- src/camera.h | 2 +- src/game_ui.c | 27 +++++++++++++----- src/object_functions.c | 2 +- src/unknown_0255E0.c | 6 ++-- 12 files changed, 49 insertions(+), 36 deletions(-) diff --git a/asm/non_matchings/game_ui/func_8009F034.s b/asm/non_matchings/game_ui/func_8009F034.s index 1dc1340e..1eabaf3e 100644 --- a/asm/non_matchings/game_ui/func_8009F034.s +++ b/asm/non_matchings/game_ui/func_8009F034.s @@ -86,8 +86,8 @@ glabel func_8009F034 .L8009F10C: /* 09FD0C 8009F10C 3C018012 */ lui $at, %hi(D_80126D2C) # $at, 0x8012 /* 09FD10 8009F110 A4206D2C */ sh $zero, %lo(D_80126D2C)($at) -/* 09FD14 8009F114 3C018012 */ lui $at, %hi(D_80126CD4) # $at, 0x8012 -/* 09FD18 8009F118 A0206CD4 */ sb $zero, %lo(D_80126CD4)($at) +/* 09FD14 8009F114 3C018012 */ lui $at, %hi(gRaceStartShowHudStep) # $at, 0x8012 +/* 09FD18 8009F118 A0206CD4 */ sb $zero, %lo(gRaceStartShowHudStep)($at) /* 09FD1C 8009F11C 3C018012 */ lui $at, %hi(gHideRaceTimer) # $at, 0x8012 /* 09FD20 8009F120 A0206D36 */ sb $zero, %lo(gHideRaceTimer)($at) /* 09FD24 8009F124 3C018012 */ lui $at, %hi(gWrongWayNagPrefix) # $at, 0x8012 diff --git a/asm/non_matchings/game_ui/func_800A3CE4.s b/asm/non_matchings/game_ui/func_800A3CE4.s index d4ff8998..43b12385 100644 --- a/asm/non_matchings/game_ui/func_800A3CE4.s +++ b/asm/non_matchings/game_ui/func_800A3CE4.s @@ -63,18 +63,18 @@ glabel func_800A3CE4 /* 0A49D0 800A3DD0 244F0008 */ addiu $t7, $v0, 8 /* 0A49D4 800A3DD4 AC8F0000 */ sw $t7, ($a0) /* 0A49D8 800A3DD8 2419FFFF */ li $t9, -1 -/* 0A49DC 800A3DDC 3C0A8012 */ lui $t2, %hi(D_80126CD4) # $t2, 0x8012 +/* 0A49DC 800A3DDC 3C0A8012 */ lui $t2, %hi(gRaceStartShowHudStep) # $t2, 0x8012 /* 0A49E0 800A3DE0 AC590004 */ sw $t9, 4($v0) /* 0A49E4 800A3DE4 AC580000 */ sw $t8, ($v0) -/* 0A49E8 800A3DE8 814A6CD4 */ lb $t2, %lo(D_80126CD4)($t2) +/* 0A49E8 800A3DE8 814A6CD4 */ lb $t2, %lo(gRaceStartShowHudStep)($t2) /* 0A49EC 800A3DEC 24010002 */ li $at, 2 /* 0A49F0 800A3DF0 1541000A */ bne $t2, $at, .L800A3E1C /* 0A49F4 800A3DF4 24040018 */ li $a0, 24 /* 0A49F8 800A3DF8 3C058012 */ lui $a1, %hi(gHUDVoiceSoundMask) # $a1, 0x8012 /* 0A49FC 800A3DFC 0C000741 */ jal play_sound_global /* 0A4A00 800A3E00 24A56D40 */ addiu $a1, %lo(gHUDVoiceSoundMask) # addiu $a1, $a1, 0x6d40 -/* 0A4A04 800A3E04 3C028012 */ lui $v0, %hi(D_80126CD4) # $v0, 0x8012 -/* 0A4A08 800A3E08 24426CD4 */ addiu $v0, %lo(D_80126CD4) # addiu $v0, $v0, 0x6cd4 +/* 0A4A04 800A3E04 3C028012 */ lui $v0, %hi(gRaceStartShowHudStep) # $v0, 0x8012 +/* 0A4A08 800A3E08 24426CD4 */ addiu $v0, %lo(gRaceStartShowHudStep) # addiu $v0, $v0, 0x6cd4 /* 0A4A0C 800A3E0C 804B0000 */ lb $t3, ($v0) /* 0A4A10 800A3E10 00000000 */ nop /* 0A4A14 800A3E14 256C0001 */ addiu $t4, $t3, 1 @@ -201,7 +201,7 @@ glabel func_800A3CE4 /* 0A4BF0 800A3FF0 8FB9005C */ lw $t9, 0x5c($sp) /* 0A4BF4 800A3FF4 01CF2821 */ addu $a1, $t6, $t7 /* 0A4BF8 800A3FF8 80B8019A */ lb $t8, 0x19a($a1) -/* 0A4BFC 800A3FFC 3C0E8012 */ lui $t6, %hi(D_80126CD4) # $t6, 0x8012 +/* 0A4BFC 800A3FFC 3C0E8012 */ lui $t6, %hi(gRaceStartShowHudStep) # $t6, 0x8012 /* 0A4C00 800A4000 03195021 */ addu $t2, $t8, $t9 /* 0A4C04 800A4004 A0AA019A */ sb $t2, 0x19a($a1) /* 0A4C08 800A4008 8CEB0000 */ lw $t3, ($a3) @@ -213,7 +213,7 @@ glabel func_800A3CE4 /* 0A4C20 800A4020 29A1003C */ slti $at, $t5, 0x3c /* 0A4C24 800A4024 14200025 */ bnez $at, .L800A40BC /* 0A4C28 800A4028 00000000 */ nop -/* 0A4C2C 800A402C 81CE6CD4 */ lb $t6, %lo(D_80126CD4)($t6) +/* 0A4C2C 800A402C 81CE6CD4 */ lb $t6, %lo(gRaceStartShowHudStep)($t6) /* 0A4C30 800A4030 24010004 */ li $at, 4 /* 0A4C34 800A4034 15C1001A */ bne $t6, $at, .L800A40A0 /* 0A4C38 800A4038 8FB9005C */ lw $t9, 0x5c($sp) @@ -235,8 +235,8 @@ glabel func_800A3CE4 .L800A4074: /* 0A4C74 800A4074 0C000741 */ jal play_sound_global /* 0A4C78 800A4078 00002825 */ move $a1, $zero -/* 0A4C7C 800A407C 3C028012 */ lui $v0, %hi(D_80126CD4) # $v0, 0x8012 -/* 0A4C80 800A4080 24426CD4 */ addiu $v0, %lo(D_80126CD4) # addiu $v0, $v0, 0x6cd4 +/* 0A4C7C 800A407C 3C028012 */ lui $v0, %hi(gRaceStartShowHudStep) # $v0, 0x8012 +/* 0A4C80 800A4080 24426CD4 */ addiu $v0, %lo(gRaceStartShowHudStep) # addiu $v0, $v0, 0x6cd4 /* 0A4C84 800A4084 804F0000 */ lb $t7, ($v0) /* 0A4C88 800A4088 3C068012 */ lui $a2, %hi(D_80126CDC) # $a2, 0x8012 /* 0A4C8C 800A408C 25F80001 */ addiu $t8, $t7, 1 @@ -253,8 +253,8 @@ glabel func_800A3CE4 /* 0A4CB4 800A40B4 46104101 */ sub.s $f4, $f8, $f16 /* 0A4CB8 800A40B8 E4C4018C */ swc1 $f4, 0x18c($a2) .L800A40BC: -/* 0A4CBC 800A40BC 3C0B8012 */ lui $t3, %hi(D_80126CD4) # $t3, 0x8012 -/* 0A4CC0 800A40C0 816B6CD4 */ lb $t3, %lo(D_80126CD4)($t3) +/* 0A4CBC 800A40BC 3C0B8012 */ lui $t3, %hi(gRaceStartShowHudStep) # $t3, 0x8012 +/* 0A4CC0 800A40C0 816B6CD4 */ lb $t3, %lo(gRaceStartShowHudStep)($t3) /* 0A4CC4 800A40C4 24010003 */ li $at, 3 /* 0A4CC8 800A40C8 1561001C */ bne $t3, $at, .L800A413C /* 0A4CCC 800A40CC 24040019 */ li $a0, 25 @@ -278,14 +278,14 @@ glabel func_800A3CE4 /* 0A4D14 800A4114 0C030C56 */ jal func_800C3158 /* 0A4D18 800A4118 24040052 */ li $a0, 82 .L800A411C: -/* 0A4D1C 800A411C 3C0D8012 */ lui $t5, %hi(D_80126CD4) # $t5, 0x8012 -/* 0A4D20 800A4120 81AD6CD4 */ lb $t5, %lo(D_80126CD4)($t5) +/* 0A4D1C 800A411C 3C0D8012 */ lui $t5, %hi(gRaceStartShowHudStep) # $t5, 0x8012 +/* 0A4D20 800A4120 81AD6CD4 */ lb $t5, %lo(gRaceStartShowHudStep)($t5) /* 0A4D24 800A4124 240C0001 */ li $t4, 1 /* 0A4D28 800A4128 3C018012 */ lui $at, %hi(D_80126D70) # $at, 0x8012 /* 0A4D2C 800A412C A02C6D70 */ sb $t4, %lo(D_80126D70)($at) -/* 0A4D30 800A4130 3C018012 */ lui $at, %hi(D_80126CD4) # $at, 0x8012 +/* 0A4D30 800A4130 3C018012 */ lui $at, %hi(gRaceStartShowHudStep) # $at, 0x8012 /* 0A4D34 800A4134 25AE0001 */ addiu $t6, $t5, 1 -/* 0A4D38 800A4138 A02E6CD4 */ sb $t6, %lo(D_80126CD4)($at) +/* 0A4D38 800A4138 A02E6CD4 */ sb $t6, %lo(gRaceStartShowHudStep)($at) .L800A413C: /* 0A4D3C 800A413C 0C01EFC7 */ jal func_8007BF1C /* 0A4D40 800A4140 00002025 */ move $a0, $zero diff --git a/asm/non_matchings/game_ui/func_800A7A60.s b/asm/non_matchings/game_ui/func_800A7A60.s index 0f2b66a5..88e9e73f 100644 --- a/asm/non_matchings/game_ui/func_800A7A60.s +++ b/asm/non_matchings/game_ui/func_800A7A60.s @@ -7,7 +7,7 @@ glabel func_800A7A60 /* 0A8674 800A7A74 00000000 */ nop /* 0A8678 800A7A78 11C00038 */ beqz $t6, .L800A7B5C /* 0A867C 800A7A7C 8FBF001C */ lw $ra, 0x1c($sp) -/* 0A8680 800A7A80 0C019888 */ jal func_80066220 +/* 0A8680 800A7A80 0C019888 */ jal get_object_render_stack_pos /* 0A8684 800A7A84 AFA30024 */ sw $v1, 0x24($sp) /* 0A8688 800A7A88 8FA30024 */ lw $v1, 0x24($sp) /* 0A868C 800A7A8C 3C078012 */ lui $a3, %hi(D_80126CDC) # $a3, 0x8012 diff --git a/asm/non_matchings/objects/func_80012F94.s b/asm/non_matchings/objects/func_80012F94.s index c1b1353a..1fefb981 100644 --- a/asm/non_matchings/objects/func_80012F94.s +++ b/asm/non_matchings/objects/func_80012F94.s @@ -87,7 +87,7 @@ glabel func_80012F94 /* 013CA4 800130A4 01E27821 */ addu $t7, $t7, $v0 /* 013CA8 800130A8 000F7840 */ sll $t7, $t7, 1 /* 013CAC 800130AC 00AF2821 */ addu $a1, $a1, $t7 -/* 013CB0 800130B0 0C019888 */ jal func_80066220 +/* 013CB0 800130B0 0C019888 */ jal get_object_render_stack_pos /* 013CB4 800130B4 AFA50038 */ sw $a1, 0x38($sp) /* 013CB8 800130B8 8FAA0024 */ lw $t2, 0x24($sp) /* 013CBC 800130BC 8FA50038 */ lw $a1, 0x38($sp) diff --git a/asm/non_matchings/unknown_0255E0/func_80027568.s b/asm/non_matchings/unknown_0255E0/func_80027568.s index 1afa2030..ee1cbc0b 100644 --- a/asm/non_matchings/unknown_0255E0/func_80027568.s +++ b/asm/non_matchings/unknown_0255E0/func_80027568.s @@ -47,7 +47,7 @@ glabel func_80027568 /* 0281F8 800275F8 100000AC */ b .L800278AC /* 0281FC 800275FC 00001025 */ move $v0, $zero .L80027600: -/* 028200 80027600 0C019888 */ jal func_80066220 +/* 028200 80027600 0C019888 */ jal get_object_render_stack_pos /* 028204 80027604 AFA60080 */ sw $a2, 0x80($sp) /* 028208 80027608 8FB800C4 */ lw $t8, 0xc4($sp) /* 02820C 8002760C 8FA60080 */ lw $a2, 0x80($sp) diff --git a/asm/non_matchings/unknown_0255E0/func_80028CD0.s b/asm/non_matchings/unknown_0255E0/func_80028CD0.s index 1aa72f25..4bba963b 100644 --- a/asm/non_matchings/unknown_0255E0/func_80028CD0.s +++ b/asm/non_matchings/unknown_0255E0/func_80028CD0.s @@ -4,7 +4,7 @@ glabel func_80028CD0 /* 0298D8 80028CD8 0C01A748 */ jal func_80069D20 /* 0298DC 80028CDC AFA40048 */ sw $a0, 0x48($sp) /* 0298E0 80028CE0 3C018012 */ lui $at, %hi(D_8011B0B0) # $at, 0x8012 -/* 0298E4 80028CE4 0C019888 */ jal func_80066220 +/* 0298E4 80028CE4 0C019888 */ jal get_object_render_stack_pos /* 0298E8 80028CE8 AC22B0B0 */ sw $v0, %lo(D_8011B0B0)($at) /* 0298EC 80028CEC 0C00C406 */ jal func_80031018 /* 0298F0 80028CF0 AFA2003C */ sw $v0, 0x3c($sp) @@ -100,7 +100,7 @@ glabel func_80028CD0 /* 029A4C 80028E4C 14EAFFF7 */ bne $a3, $t2, .L80028E2C /* 029A50 80028E50 00000000 */ nop .L80028E54: -/* 029A54 80028E54 0C019888 */ jal func_80066220 +/* 029A54 80028E54 0C019888 */ jal get_object_render_stack_pos /* 029A58 80028E58 AFA30028 */ sw $v1, 0x28($sp) /* 029A5C 80028E5C 8FA30028 */ lw $v1, 0x28($sp) /* 029A60 80028E60 444BF800 */ cfc1 $t3, $31 @@ -139,7 +139,7 @@ glabel func_80028CD0 /* 029AE4 80028EE4 10000025 */ b .L80028F7C /* 029AE8 80028EE8 00000000 */ nop .L80028EEC: -/* 029AEC 80028EEC 0C019888 */ jal func_80066220 +/* 029AEC 80028EEC 0C019888 */ jal get_object_render_stack_pos /* 029AF0 80028EF0 00000000 */ nop /* 029AF4 80028EF4 444FF800 */ cfc1 $t7, $31 /* 029AF8 80028EF8 3C038012 */ lui $v1, %hi(D_8011B0B0) # $v1, 0x8012 diff --git a/asm/non_matchings/unknown_032760/obj_loop_weather.s b/asm/non_matchings/unknown_032760/obj_loop_weather.s index 649a0680..6e9d80da 100644 --- a/asm/non_matchings/unknown_032760/obj_loop_weather.s +++ b/asm/non_matchings/unknown_032760/obj_loop_weather.s @@ -2,7 +2,7 @@ glabel obj_loop_weather /* 041420 80040820 27BDFFA8 */ addiu $sp, $sp, -0x58 /* 041424 80040824 AFBF001C */ sw $ra, 0x1c($sp) /* 041428 80040828 AFA40058 */ sw $a0, 0x58($sp) -/* 04142C 8004082C 0C019888 */ jal func_80066220 +/* 04142C 8004082C 0C019888 */ jal get_object_render_stack_pos /* 041430 80040830 AFA5005C */ sw $a1, 0x5c($sp) /* 041434 80040834 27A40050 */ addiu $a0, $sp, 0x50 /* 041438 80040838 0C006E9D */ jal get_object_struct_array diff --git a/src/camera.c b/src/camera.c index 2df42538..91989561 100644 --- a/src/camera.c +++ b/src/camera.c @@ -240,7 +240,7 @@ s32 get_viewport_count(void) { return gNumberOfViewports; } -s32 func_80066220(void) { +s32 get_object_render_stack_pos(void) { return gObjectRenderStackPos; } diff --git a/src/camera.h b/src/camera.h index 922467ae..4cb9118e 100644 --- a/src/camera.h +++ b/src/camera.h @@ -127,7 +127,7 @@ void update_camera_fov(f32 camFieldOfView); UNUSED void calculate_camera_perspective(void); Matrix *func_80066204(void); s32 get_viewport_count(void); -s32 func_80066220(void); +s32 get_object_render_stack_pos(void); void func_80066230(Gfx **dlist, Mtx **arg1); f32 func_80066348(f32 xPos, f32 yPos, f32 zPos); void func_800663DC(s32 xPos, s32 yPos, s32 zPos, s32 arg3, s32 arg4, s32 arg5); diff --git a/src/game_ui.c b/src/game_ui.c index 9ec72b49..4ae22940 100644 --- a/src/game_ui.c +++ b/src/game_ui.c @@ -177,7 +177,20 @@ s8 D_80126CD0; s8 D_80126CD1; s8 D_80126CD2; s8 D_80126CD3; -s8 D_80126CD4; + +/** + * gRaceStartShowHudStep counts up from 0->5 on race start, and is used to + * coordinate when certain hud actions & audio clips play/happen: + * - set to 0 on loading of new race + * - 0->1 when camera shutter open animation occurs + * - 1->2 when hud slides into screen with "whoosh" sound + * - 2->3 on the "Get Ready!" voice play + * - 3->4 on the "Go" voice and text + * - 4->5 on the "Go" sliding off screen + * - stays 5 until the next race starts +*/ +s8 gRaceStartShowHudStep; + s8 D_80126CD5; s32 D_80126CD8; unk80126CDC *D_80126CDC; @@ -263,7 +276,7 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 s32 sp2C; Object_64* racer; - D_80126D08 = func_80066220(); + D_80126D08 = get_object_render_stack_pos(); if (D_8012718A) { arg3 = func_8001BB18(1 - D_80126D08); } @@ -326,7 +339,7 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 } } } - if (D_80126CD4 == 0) { + if (gRaceStartShowHudStep == 0) { if (D_80126D60->race_type & RACETYPE_CHALLENGE || D_80126D60->race_type == RACETYPE_DEFAULT || D_80126D60->race_type == RACETYPE_HORSESHOE_GULCH || D_80126D60->race_type == RACETYPE_BOSS) { D_800E2770[0].unk2 = 0x7F; D_800E2770[1].unk2 = 0x7F; @@ -337,7 +350,7 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 } else { func_8006BD10(1.0f); } - D_80126CD4 += 1; + gRaceStartShowHudStep += 1; } gDPPipeSync(gHUDCurrDisplayList++); init_rsp(&gHUDCurrDisplayList); @@ -358,9 +371,9 @@ void render_hud(Gfx **dList, Matrix **mtx, TriangleList **tris, Object *arg3, s3 } } } else { - if (D_80126CD4 == 1) { + if (gRaceStartShowHudStep == 1) { play_sound_global(SOUND_WHOOSH1, NULL); - D_80126CD4 += 1; + gRaceStartShowHudStep += 1; } D_80126D24 -= updateRate * 13; if (D_80126D24 < 0) { @@ -1007,7 +1020,7 @@ void func_800AB1AC(s32 arg0) { /* Unused? */ void func_800AB1C8(void) { - D_80126CD4 = 0; + gRaceStartShowHudStep = 0; } void func_800AB1D4(u8 arg0) { diff --git a/src/object_functions.c b/src/object_functions.c index 4e616e4f..830867db 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -2442,7 +2442,7 @@ void obj_loop_weather(Object *obj, s32 speed) { f32 temp_f2; s32 i; s32 temp[3]; - sp54 = func_80066220(); + sp54 = get_object_render_stack_pos(); objects = get_object_struct_array(&numberOfObjects); if (numberOfObjects != 0) { lastObj = &objects[numberOfObjects - 1]; diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index ebf1ae22..61afa41a 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -583,7 +583,7 @@ void render_level_geometry_and_objects(void) { func_8007B3D0(&gSceneCurrDisplayList); func_80015348(sp160, sp16C - 1); - sp158 = 0x200 << (func_80066220() & 1); + sp158 = 0x200 << (get_object_render_stack_pos() & 1); for (i = sp160; i < sp16C; i++) { obj = get_object(i); @@ -640,7 +640,7 @@ void render_level_geometry_and_objects(void) { } if (D_8011D384 != 0) { - func_800BA8E4(&gSceneCurrDisplayList, &gSceneCurrMatrix, func_80066220()); + func_800BA8E4(&gSceneCurrDisplayList, &gSceneCurrMatrix, get_object_render_stack_pos()); } func_8007B3D0(&gSceneCurrDisplayList); @@ -684,7 +684,7 @@ skip: } if (D_800DC924 && func_80027568()) { - func_8002581C(segmentIds, numberOfSegments, func_80066220()); + func_8002581C(segmentIds, numberOfSegments, get_object_render_stack_pos()); } D_8011B0FC = 0; }