From 378144b35bd775f9f124bc929a37417a3cb7da5e Mon Sep 17 00:00:00 2001 From: coco875 <59367621+coco875@users.noreply.github.com> Date: Tue, 19 Sep 2023 20:23:12 +0200 Subject: [PATCH] some renaming (#419) * Renames --- .../code_80005FD0/func_80009B60.s | 6 +- .../code_80005FD0/func_8000DF8C.s | 10 +- include/actor_types.h | 11 + src/actors/boat.inc.c | 2 +- src/actors/falling_rocks.inc.c | 2 +- src/actors/train.inc.c | 6 +- src/camera.c | 20 +- src/camera_junk.h | 2 +- src/code_80005FD0.c | 22 +- src/code_80071F00.c | 14 +- src/code_8008C1D0.c | 2 +- src/common_textures.h | 22 +- src/common_textures.inc.c | 46 +- src/ending/camera_junk.c | 2 +- src/ending/ceremony_and_credits.c | 6 +- src/ending/code_80280000.c | 8 +- src/ending/code_80280000.h | 2 +- src/ending/code_80281780.c | 2 +- src/ending/code_80281780.h | 2 +- src/ending/code_80281C40.c | 4 +- src/ending/code_80281C40.h | 2 +- src/hud_renderer.c | 2 +- src/main.c | 14 +- src/player_controller.c | 6 +- src/racing/actors.c | 509 +++++++++--------- src/racing/actors.h | 88 +-- src/racing/actors_extended.c | 10 +- src/racing/actors_extended.h | 10 +- src/racing/math_util.c | 77 +-- src/racing/math_util.h | 8 +- src/racing/render_courses.c | 14 +- src/racing/skybox_and_splitscreen.c | 126 ++--- src/racing/skybox_and_splitscreen.h | 2 +- 33 files changed, 549 insertions(+), 510 deletions(-) diff --git a/asm/non_matchings/code_80005FD0/func_80009B60.s b/asm/non_matchings/code_80005FD0/func_80009B60.s index 6cbd0a680..94ee8a5e8 100644 --- a/asm/non_matchings/code_80005FD0/func_80009B60.s +++ b/asm/non_matchings/code_80005FD0/func_80009B60.s @@ -652,7 +652,7 @@ glabel func_80009B60 .L8000A488: /* 00B088 8000A488 00E02825 */ move $a1, $a3 /* 00B08C 8000A48C AFA8003C */ sw $t0, 0x3c($sp) -/* 00B090 8000A490 0C0AD489 */ jal func_802B5224 +/* 00B090 8000A490 0C0AD489 */ jal get_angle_between_points /* 00B094 8000A494 24C40014 */ addiu $a0, $a2, 0x14 /* 00B098 8000A498 8FA60040 */ lw $a2, 0x40($sp) /* 00B09C 8000A49C 8FA8003C */ lw $t0, 0x3c($sp) @@ -718,7 +718,7 @@ glabel func_80009B60 /* 00B16C 8000A56C 1040008A */ beqz $v0, .L8000A798 /* 00B170 8000A570 8FAE0040 */ lw $t6, 0x40($sp) /* 00B174 8000A574 25C40020 */ addiu $a0, $t6, 0x20 -/* 00B178 8000A578 0C0AD489 */ jal func_802B5224 +/* 00B178 8000A578 0C0AD489 */ jal get_angle_between_points /* 00B17C 8000A57C 25C50014 */ addiu $a1, $t6, 0x14 /* 00B180 8000A580 8FAC0034 */ lw $t4, 0x34($sp) /* 00B184 8000A584 3C188016 */ lui $t8, %hi(D_80163300) # $t8, 0x8016 @@ -1172,7 +1172,7 @@ glabel func_80009B60 /* 00B7F8 8000ABF8 C4A80008 */ lwc1 $f8, 8($a1) /* 00B7FC 8000ABFC AFA80020 */ sw $t0, 0x20($sp) /* 00B800 8000AC00 8FA4001C */ lw $a0, 0x1c($sp) -/* 00B804 8000AC04 0C0AD489 */ jal func_802B5224 +/* 00B804 8000AC04 0C0AD489 */ jal get_angle_between_points /* 00B808 8000AC08 E4680000 */ swc1 $f8, ($v1) /* 00B80C 8000AC0C 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 /* 00B810 8000AC10 44810000 */ mtc1 $at, $f0 diff --git a/asm/non_matchings/code_80005FD0/func_8000DF8C.s b/asm/non_matchings/code_80005FD0/func_8000DF8C.s index 1b8c0e8af..db27bd2ac 100644 --- a/asm/non_matchings/code_80005FD0/func_8000DF8C.s +++ b/asm/non_matchings/code_80005FD0/func_8000DF8C.s @@ -343,7 +343,7 @@ glabel L8000E1F4 /* 00F01C 8000E41C 00000000 */ nop /* 00F020 8000E420 468051A0 */ cvt.s.w $f6, $f10 /* 00F024 8000E424 46083100 */ add.s $f4, $f6, $f8 -/* 00F028 8000E428 0C0AD489 */ jal func_802B5224 +/* 00F028 8000E428 0C0AD489 */ jal get_angle_between_points /* 00F02C 8000E42C E4A40008 */ swc1 $f4, 8($a1) /* 00F030 8000E430 3403FFFF */ li $v1, 65535 /* 00F034 8000E434 00430019 */ multu $v0, $v1 @@ -458,7 +458,7 @@ glabel L8000E45C /* 00F1E4 8000E5E4 00000000 */ nop /* 00F1E8 8000E5E8 468042A0 */ cvt.s.w $f10, $f8 /* 00F1EC 8000E5EC 46065100 */ add.s $f4, $f10, $f6 -/* 00F1F0 8000E5F0 0C0AD489 */ jal func_802B5224 +/* 00F1F0 8000E5F0 0C0AD489 */ jal get_angle_between_points /* 00F1F4 8000E5F4 E4A40008 */ swc1 $f4, 8($a1) /* 00F1F8 8000E5F8 00027400 */ sll $t6, $v0, 0x10 /* 00F1FC 8000E5FC 01C27023 */ subu $t6, $t6, $v0 @@ -583,7 +583,7 @@ glabel L8000E634 /* 00F3B0 8000E7B0 44984000 */ mtc1 $t8, $f8 /* 00F3B4 8000E7B4 00000000 */ nop /* 00F3B8 8000E7B8 468042A0 */ cvt.s.w $f10, $f8 -/* 00F3BC 8000E7BC 0C0AD489 */ jal func_802B5224 +/* 00F3BC 8000E7BC 0C0AD489 */ jal get_angle_between_points /* 00F3C0 8000E7C0 E4AA0008 */ swc1 $f10, 8($a1) /* 00F3C4 8000E7C4 00027C00 */ sll $t7, $v0, 0x10 /* 00F3C8 8000E7C8 01E27823 */ subu $t7, $t7, $v0 @@ -608,7 +608,7 @@ glabel L8000E634 /* 00F410 8000E810 E4A60000 */ swc1 $f6, ($a1) /* 00F414 8000E814 E4A40004 */ swc1 $f4, 4($a1) /* 00F418 8000E818 C428D020 */ lwc1 $f8, %lo(D_800ED020)($at) -/* 00F41C 8000E81C 0C0AD489 */ jal func_802B5224 +/* 00F41C 8000E81C 0C0AD489 */ jal get_angle_between_points /* 00F420 8000E820 E4A80008 */ swc1 $f8, 8($a1) /* 00F424 8000E824 00025C00 */ sll $t3, $v0, 0x10 /* 00F428 8000E828 01625823 */ subu $t3, $t3, $v0 @@ -767,7 +767,7 @@ glabel L8000E968 /* 00F66C 8000EA6C 46083282 */ mul.s $f10, $f6, $f8 /* 00F670 8000EA70 00C02025 */ move $a0, $a2 /* 00F674 8000EA74 460A2181 */ sub.s $f6, $f4, $f10 -/* 00F678 8000EA78 0C0AD489 */ jal func_802B5224 +/* 00F678 8000EA78 0C0AD489 */ jal get_angle_between_points /* 00F67C 8000EA7C 4606A500 */ add.s $f20, $f20, $f6 /* 00F680 8000EA80 00026400 */ sll $t4, $v0, 0x10 /* 00F684 8000EA84 01826023 */ subu $t4, $t4, $v0 diff --git a/include/actor_types.h b/include/actor_types.h index 734765328..ccf405c72 100644 --- a/include/actor_types.h +++ b/include/actor_types.h @@ -36,6 +36,9 @@ Other members are more flexible, and even the non-general specifications can be exactly what you're doing. */ +#define ACTOR_TREE_MARIO_RACEWAY 0x02 +#define ACTOR_TREE_YOSHI_VALLEY 0x03 +#define ACTOR_TREE_ROYAL_RACEWAY 0x04 #define ACTOR_FALLING_ROCK 0x05 #define ACTOR_BANANA 0x06 #define ACTOR_GREEN_SHELL 0x07 @@ -48,10 +51,18 @@ exactly what you're doing. #define ACTOR_TRAIN_ENGINE 0x0F #define ACTOR_TRAIN_TENDER 0x10 #define ACTOR_TRAIN_PASSENGER_CAR 0x11 +#define ACTOR_COW 0x12 +#define ACTOR_TREE_MOO_MOO_FARM 0x13 #define ACTOR_TRIPLE_GREEN_SHELL 0x15 #define ACTOR_TRIPLE_RED_SHELL 0x16 #define ACTOR_MARIO_RACEWAY_SIGN 0x17 #define ACTOR_PALM_TREE 0x19 +#define ACTOR_TREE_BOWSERS_CASTLE 0x1C +#define ACTOR_TREE_FRAPPE_SNOWLAND 0x1D +#define ACTOR_CACTUS1_KALAMARI_DESERT 0x1E +#define ACTOR_CACTUS2_KALAMARI_DESERT 0x1F +#define ACTOR_CACTUS3_KALAMARI_DESERT 0x20 +#define ACTOR_BUSH_BOWSERS_CASTLE 0x21 #define ACTOR_WARIO_STADIUM_SIGN 0x23 #define ACTOR_BOX_TRUCK 0x25 #define ACTOR_PADDLE_WHEEL_BOAT 0x26 diff --git a/src/actors/boat.inc.c b/src/actors/boat.inc.c index de3fbba31..99ccb609a 100644 --- a/src/actors/boat.inc.c +++ b/src/actors/boat.inc.c @@ -1,3 +1,3 @@ -void update_obj_paddle_wheel(struct PaddleWheelBoat *boat) { +void update_actor_paddle_wheel(struct PaddleWheelBoat *boat) { boat->wheelRot += 0x38E; } diff --git a/src/actors/falling_rocks.inc.c b/src/actors/falling_rocks.inc.c index 47e4d1896..ec3ecfbbd 100644 --- a/src/actors/falling_rocks.inc.c +++ b/src/actors/falling_rocks.inc.c @@ -38,7 +38,7 @@ void place_falling_rocks(struct ActorSpawnData *spawnData) { } } -void update_obj_falling_rocks(struct FallingRock *rock) { +void update_actor_falling_rocks(struct FallingRock *rock) { Vec3f unkVec; f32 pad0; f32 pad1; diff --git a/src/actors/train.inc.c b/src/actors/train.inc.c index 39d81d1d0..4da4c55bc 100644 --- a/src/actors/train.inc.c +++ b/src/actors/train.inc.c @@ -1,5 +1,5 @@ // wheels -void update_obj_train_engine(struct TrainCar *arg0) { +void update_actor_train_engine(struct TrainCar *arg0) { arg0->wheelRot -= 0x666; if (arg0->unk_08 != 0.0f) { @@ -9,11 +9,11 @@ void update_obj_train_engine(struct TrainCar *arg0) { } // wheels -void update_obj_train_car1(struct TrainCar *tender) { +void update_actor_train_car1(struct TrainCar *tender) { tender->wheelRot -= 0x4FA; } // wheels -void update_obj_train_car2(struct TrainCar *arg0) { +void update_actor_train_car2(struct TrainCar *arg0) { arg0->wheelRot -= 0x666; } diff --git a/src/camera.c b/src/camera.c index 36e1d2ade..cb101fca8 100644 --- a/src/camera.c +++ b/src/camera.c @@ -43,7 +43,7 @@ extern f32 D_80164A48[4]; extern f32 D_80164A78[]; extern s8 D_80164A88; extern s8 D_80164A89; -extern f32 D_80150130[4]; +extern f32 gCameraZoom[4]; void camera_init(f32 posX, f32 posY, f32 posZ, UNUSED s16 rot, u32 arg4, s32 cameraId) { Player *player = gPlayerOne; @@ -152,27 +152,27 @@ void camera_init(f32 posX, f32 posY, f32 posZ, UNUSED s16 rot, u32 arg4, s32 cam if (D_80164678[cameraId] == 0) { if (D_80164A28 == 1) { - D_80150130[cameraId] = 80.0f; + gCameraZoom[cameraId] = 80.0f; } else { - D_80150130[cameraId] = 40.0f; + gCameraZoom[cameraId] = 40.0f; } - camera->unk_B4 = D_80150130[cameraId]; + camera->unk_B4 = gCameraZoom[cameraId]; } if (D_80164678[cameraId] == 1) { if (D_80164A28 == 1) { - D_80150130[cameraId] = 100.0f; + gCameraZoom[cameraId] = 100.0f; } else { - D_80150130[cameraId] = 60.0f; + gCameraZoom[cameraId] = 60.0f; } - camera->unk_B4 = D_80150130[cameraId]; + camera->unk_B4 = gCameraZoom[cameraId]; } if (D_80164678[cameraId] == 2) { if (D_80164A28 == 1) { - D_80150130[cameraId] = 100.0f; + gCameraZoom[cameraId] = 100.0f; } else { - D_80150130[cameraId] = 60.0f; + gCameraZoom[cameraId] = 60.0f; } - camera->unk_B4 = D_80150130[cameraId]; + camera->unk_B4 = gCameraZoom[cameraId]; D_80164A38[cameraId] = 20.0f; D_80164A48[cameraId] = 1.5f; D_80164A78[cameraId] = 1.0f; diff --git a/src/camera_junk.h b/src/camera_junk.h index f8d64cf67..f4e9f3d60 100644 --- a/src/camera_junk.h +++ b/src/camera_junk.h @@ -8,6 +8,6 @@ void func_802816B8(void); // guPerspective params extern f32 D_80150148, D_8015014C, D_80150150; -extern f32 D_80150130[]; +extern f32 gCameraZoom[]; #endif diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index ca6d4e547..12c37414a 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -373,7 +373,7 @@ s16 func_80005FD0(Vec3f arg0, Vec3f arg1) { s16 temp_ret; s16 phi_v1; - temp_ret = func_802B5224(arg0, arg1); + temp_ret = get_angle_between_points(arg0, arg1); phi_v1 = temp_ret; if (gIsMirrorMode != 0) { phi_v1 = -temp_ret; @@ -2087,7 +2087,7 @@ block_63: } } sp3C = var_t0_2; - sp40->unk_02E = -func_802B5224(sp40->pos, &D_80162FA0); + sp40->unk_02E = -get_angle_between_points(sp40->pos, &D_80162FA0); } else { sp40->unk_02E = (s16) D_80164590[D_80163448][(s32) (D_801630E0 + 4) % (s32) D_80164430]; } @@ -2106,7 +2106,7 @@ block_63: } if (var_v0 != 0) { temp_v1_4 = sp34 + &D_80163300; - *temp_v1_4 = -func_802B5224(&sp40->rotX, sp40->pos); + *temp_v1_4 = -get_angle_between_points(&sp40->rotX, sp40->pos); var_a0_2 = (s16) ((s32) ((s16) D_801631DC[(s32) (D_80162FCE + 2) % (s32) D_80164430] * 0x168) / 65535); var_a1 = (s16) ((s32) (*temp_v1_4 * 0x168) / 65535); if (var_a0_2 < -0xB4) { @@ -2207,7 +2207,7 @@ block_63: sp20 = temp_t0_2; *temp_v1_7 = D_80162FA0.unk8; temp_f2_2 = 1.5f * 182.0f; - temp_v1_8 = -func_802B5224(sp1C, &D_80162FA0) - sp40->unk_02E; + temp_v1_8 = -get_angle_between_points(sp1C, &D_80162FA0) - sp40->unk_02E; temp_f10 = (s32) temp_f2_2; var_a2 = temp_v1_8; temp_f6 = (s32) (-1.5f * 182.0f); @@ -3705,7 +3705,7 @@ void func_8000DF8C(s32 arg0) { D_80162FC0.unk0 = (f32) temp_v0_2->wayPointX + sp118; D_80162FC0.unk4 = (f32) temp_v0_2->wayPointY; D_80162FC0.unk8 = (f32) ((f32) temp_v0_2->wayPointZ + (f32) (temp_f10 * 25.0)); - spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); + spC2 = (u16) ((s32) (get_angle_between_points(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); break; case 2: temp_v0_3 = ((s32) (var_s1 + 4) % 360) & 0xFFFF; @@ -3730,7 +3730,7 @@ void func_8000DF8C(s32 arg0) { D_80162FC0.unk0 = (f32) temp_v0_4->wayPointX + sp118; D_80162FC0.unk4 = (f32) temp_v0_4->wayPointY; D_80162FC0.unk8 = (f32) ((f32) temp_v0_4->wayPointZ + (f32) (temp_f8 * 25.0)); - spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); + spC2 = (u16) ((s32) (get_angle_between_points(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); default: break; case 3: @@ -3756,7 +3756,7 @@ void func_8000DF8C(s32 arg0) { D_80162FC0.unk0 = (f32) temp_v1->unk0; D_80162FC0.unk4 = (f32) temp_v1->unk2; D_80162FC0.unk8 = (f32) temp_v1->unk4; - spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); + spC2 = (u16) ((s32) (get_angle_between_points(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); } else { D_80162FB0.unk0 = var_f22; D_80162FB0.unk4 = var_f20; @@ -3764,7 +3764,7 @@ void func_8000DF8C(s32 arg0) { D_80162FC0.unk0 = -2409.197f; D_80162FC0.unk4 = 0.0f; D_80162FC0.unk8 = -355.254f; - spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); + spC2 = (u16) ((s32) (get_angle_between_points(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); } temp_f14 = ((D_80162FC0.unk0 + D_80162FB0.unk0) * 0.5f) - var_f22; spF8 = temp_f14; @@ -3802,7 +3802,7 @@ void func_8000DF8C(s32 arg0) { var_f6 += 4294967296.0f; } var_f20 += 3.0f - (var_f6 * 0.3f); - spC2 = (u16) ((s32) (func_802B5224(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); + spC2 = (u16) ((s32) (get_angle_between_points(&D_80162FB0, &D_80162FC0) * 0xFFFF) / 65520); break; } if (sp4C == 4) { @@ -4926,7 +4926,7 @@ s16 func_80010CB0(s32 pathIndex, s32 wayPointIndex) { sp24[0] = temp_v0->wayPointX; sp24[1] = temp_v0->wayPointY; sp24[2] = temp_v0->wayPointZ; - ret = func_802B5224(sp30, sp24); + ret = get_angle_between_points(sp30, sp24); return -ret; } @@ -6427,7 +6427,7 @@ void func_80013D20(VehicleStuff *vehicle) { sp34[0] = vehicle->position[1]; sp34[1] = 0.0f; sp34[2] = sqrtf((temp_f0_3 * temp_f0_3) + (temp_f2_2 * temp_f2_2)); - thing = func_802B5224(sp40, sp34); + thing = get_angle_between_points(sp40, sp34); func_800224F0(&vehicle->rotation[0], -thing, 100); vehicle->velocity[0] = vehicle->position[0] - sp5C; vehicle->velocity[1] = vehicle->position[1] - sp58; diff --git a/src/code_80071F00.c b/src/code_80071F00.c index 384f46e78..88d269728 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -2887,27 +2887,27 @@ void func_80078C70(s32 arg0) { case 0: /* switch 1 */ sp1C = 0; camera = camera1; - D_8018D200 = D_80150130[0] + 40.0f; + D_8018D200 = gCameraZoom[0] + 40.0f; break; case 1: /* switch 1 */ sp1C = 0; camera = camera1; - D_8018D200 = D_80150130[0] + 40.0f; + D_8018D200 = gCameraZoom[0] + 40.0f; break; case 2: /* switch 1 */ camera = camera2; sp1C = D_8018D1F0; - D_8018D200 = D_80150130[1] + 40.0f; + D_8018D200 = gCameraZoom[1] + 40.0f; break; case 3: /* switch 1 */ sp1C = 0; camera = camera1; - D_8018D200 = D_80150130[0] + 40.0f; + D_8018D200 = gCameraZoom[0] + 40.0f; break; case 4: /* switch 1 */ camera = camera2; sp1C = D_8018D1F0; - D_8018D200 = D_80150130[1] + 40.0f; + D_8018D200 = gCameraZoom[1] + 40.0f; break; } @@ -6981,7 +6981,7 @@ void func_8008275C(s32 objectIndex) { D_80165C18[objectIndex].unk_028[1] *= 2.5; D_80165C18[objectIndex].unk_028[2] *= 2.0; func_8008BF18(objectIndex); - D_80165C18[objectIndex].unk_0BE[1] = func_802B5224(D_80165C18[objectIndex].unk_01C, D_80165C18[objectIndex].pos); + D_80165C18[objectIndex].unk_0BE[1] = get_angle_between_points(D_80165C18[objectIndex].unk_01C, D_80165C18[objectIndex].pos); break; } func_800873F4(objectIndex); @@ -8084,7 +8084,7 @@ void func_80085AA8(void) { func_800859C8(temp_s2, var_s4); func_80040EC4(temp_s0->unk_01C, temp_s0->unk_028); func_8000D940(temp_s0->unk_028, &temp_s0->unk_084[8], temp_s0->unk_034, temp_s0->unk_044, 0); - temp_s0->unk_0BE[1] = func_802B5224(temp_s0->unk_01C, temp_s0->unk_028); + temp_s0->unk_0BE[1] = get_angle_between_points(temp_s0->unk_01C, temp_s0->unk_028); func_8008BF18(temp_s2); func_80089CBC(temp_s2, 30.0f); } diff --git a/src/code_8008C1D0.c b/src/code_8008C1D0.c index f21c00aa8..48d54cdf6 100644 --- a/src/code_8008C1D0.c +++ b/src/code_8008C1D0.c @@ -1890,7 +1890,7 @@ void func_80090970(Player *player, s8 arg1, s8 arg2) { case 2: func_80090178(player, arg1, sp44, sp38); // Fakematch found by Verti, who knows what's going on here - player->unk_02C[1] = (u16) -func_802B5224(sp44, sp38) & 0xFFFF; + player->unk_02C[1] = (u16) -get_angle_between_points(sp44, sp38) & 0xFFFF; player->pos[0] = sp44[0]; player->pos[1] = sp44[1] + 40.0f; player->pos[2] = sp44[2]; diff --git a/src/common_textures.h b/src/common_textures.h index 58ba0f9fb..d8af4885a 100644 --- a/src/common_textures.h +++ b/src/common_textures.h @@ -22,7 +22,7 @@ extern Vtx D_0D001300[]; extern Vtx D_0D001330[]; extern Vtx D_0D001360[]; extern Vtx D_0D001390[]; -extern Vtx D_0D001590[]; +extern Vtx common_vertex_finish_post[]; extern Vtx D_0D001710[]; extern Gfx D_0D001750[]; extern Gfx D_0D001780[]; @@ -34,14 +34,14 @@ extern Gfx D_0D0017F8[]; extern Gfx D_0D001810[]; extern Gfx D_0D001828[]; extern Gfx D_0D001840[]; -extern Gfx D_0D001AB8[]; +extern Gfx common_model_finish_post[]; extern Gfx D_0D001B68[]; extern Gfx D_0D001B90[]; extern Gfx D_0D001BD8[]; extern Gfx D_0D001C20[]; extern Gfx D_0D001C88[]; extern Vtx D_0D001CE8[]; -extern Vtx D_0D001D28[]; +extern Vtx common_vtx_itembox_question_mark[]; extern Vtx D_0D001D68[]; extern Vtx D_0D001D98[]; extern Vtx D_0D001DC8[]; @@ -52,9 +52,9 @@ extern Vtx D_0D001E88[]; extern Vtx D_0D001EB8[]; extern s8 gItemBoxQuestionMark_Texture[]; extern Gfx D_0D002EE8[]; -extern Vtx D_0D002F40[]; -extern Gfx D_0D002F80[]; -extern Gfx D_0D003008[]; +extern Vtx common_fake_item_box_question_mark_vertices[]; +extern Gfx common_model_fake_itembox[]; +extern Gfx itemBoxQuestionMarkModel[]; extern Gfx D_0D003090[]; extern Gfx D_0D0030F8[]; extern Gfx D_0D003128[]; @@ -66,12 +66,12 @@ extern Gfx D_0D003218[]; extern Gfx D_0D003248[]; extern Gfx D_0D003278[]; extern Gfx D_0D003288[]; -extern Vtx D_0D003298[]; -extern Vtx D_0D0032E8[]; +extern Vtx common_vtx_banana[]; +extern Vtx common_vtx_flat_banana[]; extern s8 gBananaTexture[]; -extern s8 D_0D003B48[]; -extern Gfx D_0D004B48[]; -extern Gfx D_0D004BD8[]; +extern s8 common_texture_flat_banana[]; +extern Gfx common_model_banana[]; +extern Gfx common_model_flat_banana[]; extern s8 D_0D004C68[]; extern s8 gTLUTGreenShell[]; extern s8 gTLUTBlueShell[]; diff --git a/src/common_textures.inc.c b/src/common_textures.inc.c index 700bf52bd..321d17a6a 100644 --- a/src/common_textures.inc.c +++ b/src/common_textures.inc.c @@ -123,7 +123,7 @@ Vtx D_0D001390[] = { {{{ 40, 100, 0}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, }; -Vtx D_0D001590[] = { +Vtx common_vertex_finish_post[] = { {{{ -92, 0, 0}, 0, {0, 990}, {0xff, 0xff, 0xff, 0xff}}}, {{{ -89, 0, 0}, 0, {990, 990}, {0xff, 0xff, 0xff, 0xff}}}, {{{ -89, 115, 0}, 0, {990, 0}, {0xff, 0xff, 0xff, 0xff}}}, @@ -244,7 +244,7 @@ Gfx D_0D001840[] = { gsSPEndDisplayList(), }; -Gfx D_0D001AB8[] = { +Gfx common_model_finish_post[] = { gsSPClearGeometryMode(G_CULL_BACK), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x03008000), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD), @@ -252,7 +252,7 @@ Gfx D_0D001AB8[] = { gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 8, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD), gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 124, 124), - gsSPVertex(D_0D001590, 24, 0), + gsSPVertex(common_vertex_finish_post, 24, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), gsSP2Triangles(4, 5, 6, 0, 4, 6, 7, 0), gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x03008800), @@ -284,7 +284,7 @@ Gfx D_0D001B90[] = { gsSPDisplayList(D_0D001840), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsSPDisplayList(D_0D001AB8), + gsSPDisplayList(common_model_finish_post), gsDPPipeSync(), gsSPEndDisplayList(), }; @@ -293,7 +293,7 @@ Gfx D_0D001BD8[] = { gsDPPipeSync(), gsDPSetRenderMode(G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2), gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsSPDisplayList(D_0D001AB8), + gsSPDisplayList(common_model_finish_post), gsDPSetCombineMode(G_CC_DECALRGB, G_CC_DECALRGB), gsSPSetGeometryMode(G_CULL_BACK), gsDPSetRenderMode(G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2), @@ -310,7 +310,7 @@ Gfx D_0D001C20[] = { gsSPDisplayList(D_0D001840), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2), - gsSPDisplayList(D_0D001AB8), + gsSPDisplayList(common_model_finish_post), gsSPClearGeometryMode(G_FOG), gsDPSetCycleType(G_CYC_1CYCLE), gsDPPipeSync(), @@ -323,7 +323,7 @@ Gfx D_0D001C88[] = { gsSPSetGeometryMode(G_FOG), gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_TEX_EDGE2), gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_PASS2), - gsSPDisplayList(D_0D001AB8), + gsSPDisplayList(common_model_finish_post), gsDPSetCombineMode(G_CC_DECALRGB, G_CC_PASS2), gsSPDisplayList(D_0D001B68), gsSPClearGeometryMode(G_FOG), @@ -340,7 +340,7 @@ Vtx D_0D001CE8[] = { {{{ 5, 0, -5}, 0, {0, 0}, {0x00, 0x00, 0x00, 0x80}}}, }; -Vtx D_0D001D28[] = { +Vtx common_vtx_itembox_question_mark[] = { {{{ 3, -5, 0}, 0, {1024, 1945}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 3, 5, 0}, 0, {1024, 65434}, {0xff, 0xff, 0xff, 0xff}}}, {{{ -3, 5, 0}, 0, {0, 65434}, {0xff, 0xff, 0xff, 0xff}}}, @@ -414,14 +414,14 @@ Gfx D_0D002EE8[] = { gsSPEndDisplayList(), }; -Vtx D_0D002F40[] = { +Vtx common_fake_item_box_question_mark_vertices[] = { {{{ -3, 5, 0}, 0, {1024, 2048}, {0xff, 0xff, 0xff, 0xff}}}, {{{ -3, -5, 0}, 0, {1024, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 3, -5, 0}, 0, {0, 0}, {0xff, 0xff, 0xff, 0xff}}}, {{{ 3, 5, 0}, 0, {0, 2048}, {0xff, 0xff, 0xff, 0xff}}}, }; -Gfx D_0D002F80[] = { +Gfx common_model_fake_itembox[] = { gsSPClearGeometryMode(G_CULL_BACK), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPPipeSync(), @@ -435,13 +435,13 @@ Gfx D_0D002F80[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 256), - gsSPVertex(D_0D002F40, 4, 0), + gsSPVertex(common_fake_item_box_question_mark_vertices, 4, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), gsSPSetGeometryMode(G_CULL_BACK), gsSPEndDisplayList(), }; -Gfx D_0D003008[] = { +Gfx itemBoxQuestionMarkModel[] = { gsSPClearGeometryMode(G_CULL_BACK), gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPPipeSync(), @@ -455,7 +455,7 @@ Gfx D_0D003008[] = { gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 256), - gsSPVertex(D_0D001D28, 4, 0), + gsSPVertex(common_vtx_itembox_question_mark, 4, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), gsSPSetGeometryMode(G_CULL_BACK), gsSPEndDisplayList(), @@ -559,7 +559,7 @@ Gfx D_0D003288[] = { gsSPEndDisplayList(), }; -Vtx D_0D003298[] = { +Vtx common_vtx_banana[] = { {{{ 4, -3, 0}, 0, {1228, 1024}, {0xff, 0xfe, 0xfe, 0xff}}}, {{{ 0, 4, 0}, 0, {512, 65332}, {0xc1, 0xff, 0x00, 0xff}}}, {{{ -4, -3, 0}, 0, {65332, 1024}, {0xff, 0xfe, 0xfe, 0xff}}}, @@ -567,7 +567,7 @@ Vtx D_0D003298[] = { {{{ 0, -3, -4}, 0, {65332, 1024}, {0xd3, 0xda, 0xad, 0xff}}}, }; -Vtx D_0D0032E8[] = { +Vtx common_vtx_flat_banana[] = { {{{ 6, -3, 0}, 0, {2048, 1024}, {0xff, 0xfe, 0xfe, 0xff}}}, {{{ 0, 4, 0}, 0, {1023, 65127}, {0xc1, 0xff, 0x00, 0xff}}}, {{{ -6, -3, 0}, 0, {0, 1024}, {0xff, 0xfe, 0xfe, 0xff}}}, @@ -582,12 +582,12 @@ s8 gBananaTexture[] = { #include "textures/common/132B50_03348.rgba16.inc.c" }; -s8 D_0D003B48[] = { +s8 common_texture_flat_banana[] = { #include "textures/common/132B50_03B48.rgba16.inc.c" }; // 0x4B48 -Gfx D_0D004B48[] = { +Gfx common_model_banana[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA), @@ -601,7 +601,7 @@ Gfx D_0D004B48[] = { gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 1023, 256), gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPVertex(D_0D003298, 5, 0), + gsSPVertex(common_vtx_banana, 5, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 1, 4, 0), gsSPSetGeometryMode(G_CULL_BACK), @@ -609,7 +609,7 @@ Gfx D_0D004B48[] = { }; -Gfx D_0D004BD8[] = { +Gfx common_model_flat_banana[] = { gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON), gsDPPipeSync(), gsDPSetCombineMode(G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA), @@ -617,13 +617,13 @@ Gfx D_0D004BD8[] = { gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 5, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_CLAMP, 6, G_TX_NOLOD), gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, 252, 124), - gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, D_0D003B48), + gsDPSetTextureImage(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, common_texture_flat_banana), gsDPTileSync(), gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD), gsDPLoadSync(), gsDPLoadBlock(G_TX_LOADTILE, 0, 0, 2047, 128), gsSPClearGeometryMode(G_CULL_BACK | G_LIGHTING), - gsSPVertex(D_0D0032E8, 6, 0), + gsSPVertex(common_vtx_flat_banana, 6, 0), gsSP1Triangle(0, 1, 2, 0), gsSP1Triangle(3, 4, 5, 0), gsSPSetGeometryMode(G_CULL_BACK), @@ -684,7 +684,7 @@ Gfx D_0D005308[] = { gsSPEndDisplayList(), }; -Gfx D_0D005338[] = { +Gfx D_0D005338[] = { // normal shell gsSPDisplayList(D_0D005308), gsSPVertex(D_0D005238, 4, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), @@ -693,7 +693,7 @@ Gfx D_0D005338[] = { gsSPEndDisplayList(), }; -Gfx D_0D005368[] = { +Gfx D_0D005368[] = { // mirrored shell gsSPDisplayList(D_0D005308), gsSPVertex(D_0D005278, 4, 0), gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0), diff --git a/src/ending/camera_junk.c b/src/ending/camera_junk.c index 6b95eafe0..fa9423282 100644 --- a/src/ending/camera_junk.c +++ b/src/ending/camera_junk.c @@ -34,7 +34,7 @@ void func_802816B8(void) { cameras[0].up[0] = 0.0f; cameras[0].up[1] = 1.0f; cameras[0].up[2] = 0.0f; - D_80150130[0] = 40.0f; + gCameraZoom[0] = 40.0f; D_80150148 = 1.33333333f; D_80150150 = 3.0f; D_8015014C = 6800.0f; diff --git a/src/ending/ceremony_and_credits.c b/src/ending/ceremony_and_credits.c index d2896d967..0a1860ad2 100644 --- a/src/ending/ceremony_and_credits.c +++ b/src/ending/ceremony_and_credits.c @@ -20,7 +20,7 @@ #include "podium_ceremony_actors.h" #include "code_80091750.h" -extern f32 D_80150130[]; +extern f32 gCameraZoom[]; f32 D_802856B0 = 98.0f; f32 D_802856B4 = 12.0f; @@ -543,7 +543,7 @@ void init_cinematic_camera(void) { camera->unk68 = 0.0f; camera->unk6C = 0; camera->unk6E = 0; - camera->unk20 = D_80150130[0]; + camera->unk20 = gCameraZoom[0]; sCutsceneShot = 0; gCutsceneShotTimer = 0; D_802876D4 = 0; @@ -626,7 +626,7 @@ s32 func_80283648(Camera *camera) { } func_80282F44(0, new_var, camera); func_80282F44(1, new_var, camera); - func_80283100(new_var, D_80150130); + func_80283100(new_var, gCameraZoom); vec3f_copy_dupe(new_var->unk30, camera->pos); vec3f_copy_dupe(new_var->unk24, camera->lookAt); vec3f_copy_dupe(new_var->unk3C, camera->up); diff --git a/src/ending/code_80280000.c b/src/ending/code_80280000.c index 0bf41a6db..92e5eb31b 100644 --- a/src/ending/code_80280000.c +++ b/src/ending/code_80280000.c @@ -51,16 +51,16 @@ void func_80280038(void) { func_80057FC4(0); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, D_80150130[0], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[0], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); gCurrentCourseId = gCreditsCourseId; mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); func_80295A38(D_800DC5EC); - func_802A3008(D_800DC5EC); + render_course_actors(D_800DC5EC); func_80058090(0); func_80058538(0); transition_sliding_borders(); @@ -128,7 +128,7 @@ void load_credits(void) { func_802A4D18(); func_802A74BC(); camera->unk_B4 = 60.0f; - D_80150130[0] = 60.0f; + gCameraZoom[0] = 60.0f; D_800DC5EC->screenWidth = SCREEN_WIDTH; D_800DC5EC->screenHeight = SCREEN_HEIGHT; D_800DC5EC->screenStartX = 160; diff --git a/src/ending/code_80280000.h b/src/ending/code_80280000.h index 68dde76fd..5d9d3d288 100644 --- a/src/ending/code_80280000.h +++ b/src/ending/code_80280000.h @@ -14,7 +14,7 @@ void load_credits(void); extern Gfx *gDisplayListHead; extern f32 D_80150148, D_8015014C, D_80150150; -extern f32 D_80150130[4]; +extern f32 gCameraZoom[4]; extern s16 gCreditsCourseId; extern u16 gMatrixObjectCount; extern s16 gMatrixEffectCount; diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c index e933c91cd..3fbd6edad 100644 --- a/src/ending/code_80281780.c +++ b/src/ending/code_80281780.c @@ -96,7 +96,7 @@ void load_ceremony_cutscene(void) { func_802A4D18(); func_802A74BC(); camera->unk_B4 = 60.0f; - D_80150130[0] = 60.0f; + gCameraZoom[0] = 60.0f; D_800DC5EC->screenWidth = SCREEN_WIDTH; D_800DC5EC->screenHeight = SCREEN_HEIGHT; D_800DC5EC->screenStartX = 160; diff --git a/src/ending/code_80281780.h b/src/ending/code_80281780.h index 09f1b7530..708a432d6 100644 --- a/src/ending/code_80281780.h +++ b/src/ending/code_80281780.h @@ -29,7 +29,7 @@ extern struct UnkStruct_800DC5EC *D_800DC5EC; extern s32 D_80287554; extern f32 D_801647A4; -extern f32 D_80150130[]; +extern f32 gCameraZoom[]; extern s32 D_8015F5A0; diff --git a/src/ending/code_80281C40.c b/src/ending/code_80281C40.c index 583e3befa..037523527 100644 --- a/src/ending/code_80281C40.c +++ b/src/ending/code_80281C40.c @@ -67,13 +67,13 @@ void func_80281D00(void) { } func_8028150C(); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective((Mtx*) &gGfxPool->mtxPersp[0], &perspNorm, D_80150130[0], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective((Mtx*) &gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt((Mtx*) &gGfxPool->mtxLookAt[0], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); gSPDisplayList(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_80284F70)); func_800212B4(); gSPDisplayList(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_80284EE0)); diff --git a/src/ending/code_80281C40.h b/src/ending/code_80281C40.h index e619b7f63..bcba22cc9 100644 --- a/src/ending/code_80281C40.h +++ b/src/ending/code_80281C40.h @@ -14,6 +14,6 @@ extern Gfx D_00284EE0[]; extern f32 D_80150148, D_8015014C, D_80150150; -extern f32 D_80150130[]; +extern f32 gCameraZoom[]; #endif diff --git a/src/hud_renderer.c b/src/hud_renderer.c index 44d388b47..d39afd397 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -5321,7 +5321,7 @@ void func_80055FA0(s32 objectIndex, UNUSED s32 arg1) { gSPDisplayList(gDisplayListHead++, object->unk_070); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(someMatrix2); - func_802B4FF8(someMatrix2, 0); + render_set_position(someMatrix2, 0); } } diff --git a/src/main.c b/src/main.c index 9b07f040b..e9e84ba10 100644 --- a/src/main.c +++ b/src/main.c @@ -117,7 +117,7 @@ s32 D_80150120; s32 gMenuSelectionFromQuit; UNUSED s32 D_80150128; UNUSED s32 D_8015012C; -f32 D_80150130[4]; +f32 gCameraZoom[4]; // look like to be the fov of each character //f32 D_80150134; //f32 D_80150138; //f32 D_8015013C; @@ -579,7 +579,7 @@ void race_logic_loop(void) { func_80028F70(); func_8028F474(); func_80059AC8(); - update_simple_objects(); + update_course_actors(); func_802966A0(); func_8028FCBC(); @@ -646,7 +646,7 @@ void race_logic_loop(void) { func_80029150(); func_8028F474(); func_80059AC8(); - update_simple_objects(); + update_course_actors(); func_802966A0(); func_8028FCBC(); } @@ -692,7 +692,7 @@ void race_logic_loop(void) { func_80029150(); func_8028F474(); func_80059AC8(); - update_simple_objects(); + update_course_actors(); func_802966A0(); func_8028FCBC(); } @@ -764,7 +764,7 @@ void race_logic_loop(void) { func_800291F8(); func_8028F474(); func_80059AC8(); - update_simple_objects(); + update_course_actors(); func_802966A0(); func_8028FCBC(); } @@ -825,7 +825,7 @@ void race_logic_loop(void) { func_800591B4(); func_80093E20(); #if DVDL - display_dvdl(); + display_dvdl(); #endif gDPFullSync(gDisplayListHead++); gSPEndDisplayList(gDisplayListHead++); @@ -873,7 +873,7 @@ void game_state_handler(void) { init_rcp(); func_80094A64(gGfxPool); #if DVDL - display_dvdl(); + display_dvdl(); #endif break; case RACING: diff --git a/src/player_controller.c b/src/player_controller.c index 492eaf28e..0a690ea66 100644 --- a/src/player_controller.c +++ b/src/player_controller.c @@ -1692,7 +1692,7 @@ void func_8002B9CC(Player *player, s8 arg1, UNUSED s32 arg2) { func_8008C73C(player, arg1); } } - temp = (-(s16)func_802B5224(player->pos, &player->rotX)); + temp = (-(s16)get_angle_between_points(player->pos, &player->rotX)); temp2 = (player->unk_02C[1] - player->unk_0C0); temp = temp - temp2; player->unk_234 = temp / 182; @@ -1735,7 +1735,7 @@ void func_8002BB9C(Player *player, f32 *arg1, f32 *arg2, UNUSED s8 arg3, UNUSED func_802B63B8(sp4C, sp64); - var_v0 = -(s16)func_802B5224(sp58, sp4C); + var_v0 = -(s16)get_angle_between_points(sp58, sp4C); t0 = player->unk_02C[1]; var_v0 = 0x10000 + (t0 - var_v0); var_v0 /= 182; @@ -2156,7 +2156,7 @@ void func_8002D028(Player *player, s8 arg1) { sp4C[1] = 0; sp4C[2] = D_80165230[D_80165270[arg1]]; - temp = -(s16)func_802B5224(player->pos, sp4C); + temp = -(s16)get_angle_between_points(player->pos, sp4C); temp2 = player->unk_02C[1]; temp = (temp - temp2); diff --git a/src/racing/actors.c b/src/racing/actors.c index 65849547c..2a3d56653 100644 --- a/src/racing/actors.c +++ b/src/racing/actors.c @@ -31,7 +31,7 @@ u8 *D_802BA058; struct Actor *D_802BA05C; -s8 D_802BA060[512]; // tlut 256 +s8 gTLUTRedShell[512]; // tlut 256 u16 D_802BA260; /** @@ -311,12 +311,14 @@ void func_802972B8(Camera *arg0, struct Actor *arg1) { void func_80297340(Camera *arg0) { Mat4 sp38; s16 temp = D_8015F8D0[2]; + s32 maxObjectsReached; if (gGamestate == CREDITS_SEQUENCE) { return; } mtxf_translate(sp38, D_8015F8D0); - if (func_802B4FF8(sp38, 0) == 0) { return; } + maxObjectsReached = render_set_position(sp38, 0) == 0; + if (maxObjectsReached) { return; } if (temp < arg0->pos[2]) { if (D_800DC5BC != 0) { @@ -384,21 +386,22 @@ void func_802977E4(Player *arg0) { arg0->boundingBoxCorners[2].unk_14 &= 0xFFFD; } -void func_80297818(void) { - s16 *phi_v0 = (s16 *) &D_802BA060[0]; - s16 *phi_v1 = (s16 *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[SEGMENT_NUMBER2(gTLUTGreenShell)] + SEGMENT_OFFSET(gTLUTGreenShell)); - s16 temp_a0, temp_a0_2, temp_a0_3, temp_a0_4, temp_a0_5; +// Invert green and red on green shell texture +void init_red_shell_texture(void) { + s16 *red_shell_texture = (s16 *) &gTLUTRedShell[0]; + s16 *green_shell_texture = (s16 *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[SEGMENT_NUMBER2(gTLUTGreenShell)] + SEGMENT_OFFSET(gTLUTGreenShell)); + s16 color_pixel, red_color, green_color, blue_color, alpha_color; s32 i; for (i = 0; i < 256; i++) { - temp_a0 = *phi_v1; - temp_a0_2 = temp_a0 & 0xF800; - temp_a0_3 = temp_a0 & 0x7C0; - temp_a0_4 = temp_a0 & 0x3E; - temp_a0_5 = temp_a0 & 0x1; + color_pixel = *green_shell_texture; + red_color = color_pixel & 0xF800; + green_color = color_pixel & 0x7C0; + blue_color = color_pixel & 0x3E; + alpha_color = color_pixel & 0x1; - *phi_v0 = (temp_a0_2 >> 5) | (temp_a0_3 << 5) | temp_a0_4 | temp_a0_5; - phi_v1++; - phi_v0++; + *red_shell_texture = (red_color >> 5) | (green_color << 5) | blue_color | alpha_color; // Invert color + green_shell_texture++; + red_shell_texture++; } } @@ -410,7 +413,7 @@ void func_8029794C(Vec3f arg0, Vec3s arg1, f32 arg2) { func_802B5F74(sp20, arg0, arg1); func_802B5F00(sp20, arg2); - if (func_802B4FF8(sp20, 0) != 0) { + if (render_set_position(sp20, 0) != 0) { gSPDisplayList(gDisplayListHead++, D_0D007B20); arg0[1] -= 2.0f; @@ -429,14 +432,14 @@ void func_802979F8(struct Actor *arg0, UNUSED f32 arg1) { } } -void func_80297A50(Camera *camera, Mat4 arg1, struct Actor *arg2) { - if (func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f) < 0) { return; } +void render_actor_cow(Camera *camera, Mat4 arg1, struct Actor *arg2) { + if (is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f) < 0) { return; } arg1[3][0] = arg2->pos[0]; arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { switch (arg2->state) { case 0: gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_cow1); @@ -457,7 +460,7 @@ void func_80297A50(Camera *camera, Mat4 arg1, struct Actor *arg2) { } } -void update_obj_yoshi_valley_egg(struct YoshiValleyEgg *egg) { +void update_actor_yoshi_valley_egg(struct YoshiValleyEgg *egg) { egg->pathRot += 0x5B; egg->pos[0] = egg->pathCenter[0] + (sins(egg->pathRot) * egg->pathRadius); egg->pos[2] = egg->pathCenter[2] + (coss(egg->pathRot) * egg->pathRadius); @@ -477,7 +480,7 @@ void update_obj_yoshi_valley_egg(struct YoshiValleyEgg *egg) { egg->eggRot -= 0x222; } -void update_obj_trees_cacti_shrubs(struct Actor *arg0) { +void update_actor_trees_cacti_shrubs(struct Actor *arg0) { if (((arg0->flags & 0x800) == 0) && ((arg0->flags & 0x400) != 0)) { arg0->pos[1] = arg0->pos[1] + 4.0f; if (arg0->pos[1] > 800.0f) { @@ -486,7 +489,7 @@ void update_obj_trees_cacti_shrubs(struct Actor *arg0) { } } -void update_obj_kiwano_fruit(struct KiwanoFruit *fruit) { +void update_actor_kiwano_fruit(struct KiwanoFruit *fruit) { Player *player; f32 temp_f2; f32 temp_f16; @@ -569,7 +572,7 @@ void update_obj_kiwano_fruit(struct KiwanoFruit *fruit) { #include "actors/train.inc.c" -void update_obj_piranha_plant(struct PiranhaPlant *arg0) { +void update_actor_piranha_plant(struct PiranhaPlant *arg0) { if ((arg0->flags & 0x800) == 0) { if ((arg0->flags & 0x400) != 0) { arg0->pos[1] += 4.0f; @@ -615,17 +618,18 @@ void update_obj_piranha_plant(struct PiranhaPlant *arg0) { } // Mario Raceway Load piranha plant textures? -void func_80298328(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) { +void render_actor_piranha_plant(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) { UNUSED s32 pad; u8 *addr; s16 temp_lo = arg0 - camera1; s16 animationFrame; // unconfirmed s16 temp = arg2->flags; f32 temp_f0; + s32 maxObjectsReached; if (temp & 0x800) { return; } - temp_f0 = func_802B80D0(arg0->pos, arg2->pos, arg0->rot[1], 0, D_80150130[arg0 - camera1], 1000000.0f); + temp_f0 = is_within_render_distance(arg0->pos, arg2->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 1000000.0f); if (temp_f0 < 0.0f) { @@ -649,7 +653,8 @@ void func_80298328(Camera *arg0, Mat4 arg1, struct PiranhaPlant *arg2) { arg1[3][0] = arg2->pos[0]; arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) == 0) { return; } + maxObjectsReached = render_set_position(arg1, 0) == 0; + if (maxObjectsReached) { return; } if (90000.0f < temp_f0) { @@ -739,7 +744,7 @@ void func_802986B4(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) { sp88[0] = var_s1->pos[0] * gCourseDirection; sp88[1] = var_s1->pos[1]; sp88[2] = var_s1->pos[2]; - temp_f0 = func_802B80D0(camera->pos, sp88, camera->rot[1], 0.0f, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, sp88, camera->rot[1], 0.0f, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 > 0.0f) { if (temp_f0 < D_8015F704) { D_8015F704 = temp_f0; @@ -748,7 +753,7 @@ void func_802986B4(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) { arg1[3][0] = sp88[0]; arg1[3][1] = sp88[1]; arg1[3][2] = sp88[2]; - if ((gMatrixObjectCount < MTX_OBJECT_POOL_SIZE) && (func_802B4FF8(arg1, 0) != 0)) { + if ((gMatrixObjectCount < MTX_OBJECT_POOL_SIZE) && (render_set_position(arg1, 0) != 0)) { switch (var_s1->someId) { case 0: gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_cow1); @@ -877,7 +882,7 @@ void func_80298D7C(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) { spD4[1] = var_s1->pos[1]; spD4[2] = var_s1->pos[2]; - if (func_802B80D0(camera->pos, spD4, camera->rot[1], 0.0f, D_80150130[camera - camera1], var_f22) < 0.0f) { + if (is_within_render_distance(camera->pos, spD4, camera->rot[1], 0.0f, gCameraZoom[camera - camera1], var_f22) < 0.0f) { var_s1++; continue; } @@ -887,14 +892,14 @@ void func_80298D7C(Camera *camera, Mat4 arg1, UNUSED struct Actor *actor) { if (test == 6) { func_802B5F74(sp90, spD4, sp88); if (!(gMatrixObjectCount < MTX_OBJECT_POOL_SIZE)) { break; } - func_802B4FF8(sp90, 0); + render_set_position(sp90, 0); goto dummylabel; } else { arg1[3][0] = spD4[0]; arg1[3][1] = spD4[1]; arg1[3][2] = spD4[2]; if (gMatrixObjectCount < MTX_OBJECT_POOL_SIZE) { - func_802B4FF8(arg1, 0); + render_set_position(arg1, 0); dummylabel: gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); switch (test) { @@ -917,13 +922,13 @@ dummylabel: } } -void func_80299144(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_mario_raceway(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 16000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 16000000.0f); if (temp_f0 < 0.0f) { return; } @@ -934,19 +939,19 @@ void func_80299144(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); gSPDisplayList(gDisplayListHead++, d_course_mario_raceway_dl_tree); } } -void func_8029930C(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_yoshi_valley(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -957,19 +962,19 @@ void func_8029930C(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); gSPDisplayList(gDisplayListHead++, d_course_yoshi_valley_dl_tree); } } -void func_802994D4(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_royal_raceway(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -980,19 +985,19 @@ void func_802994D4(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); gSPDisplayList(gDisplayListHead++, d_course_royal_raceway_dl_tree); } } -void func_8029969C(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_moo_moo_farm(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 6250000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 6250000.0f); if (temp_f0 < 0.0f) { return; } @@ -1003,7 +1008,7 @@ void func_8029969C(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); gSPDisplayList(gDisplayListHead++, d_course_moo_moo_farm_dl_tree); } @@ -1015,7 +1020,7 @@ void func_80299864(Camera *camera, Mat4 arg1, struct Actor *arg2) { if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -1026,7 +1031,7 @@ void func_80299864(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); // Why is a TLUT being used a DL here? That makes no sense // Based on the TLUT being loaded above, this ought to be be another @@ -1036,13 +1041,13 @@ void func_80299864(Camera *camera, Mat4 arg1, struct Actor *arg2) { } } -void func_80299A2C(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_bowser_castle(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -1053,19 +1058,19 @@ void func_80299A2C(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); gSPDisplayList(gDisplayListHead++, d_course_royal_raceway_dl_castle_tree); } } -void func_80299BF4(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_bush_bowser_castle(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 640000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 640000.0f); if (temp_f0 < 0.0f) { return; } @@ -1076,19 +1081,19 @@ void func_80299BF4(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gDPLoadTLUT_pal256(gDisplayListHead++, D_0D004C68); gSPDisplayList(gDisplayListHead++, d_course_bowsers_castle_dl_bush); } } -void func_80299DBC(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_frappe_snowland(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -1099,18 +1104,18 @@ void func_80299DBC(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gSPDisplayList(gDisplayListHead++, d_course_frappe_snowland_dl_tree); } } -void func_80299EDC(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_cactus1_kalimari_desert(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -1121,18 +1126,18 @@ void func_80299EDC(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_cactus1); } } -void func_80299FFC(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_cactus2_kalimari_desert(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -1143,18 +1148,18 @@ void func_80299FFC(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_cactus2); } } -void func_8029A11C(Camera *camera, Mat4 arg1, struct Actor *arg2) { +void render_actor_tree_cactus3_kalimari_desert(Camera *camera, Mat4 arg1, struct Actor *arg2) { f32 temp_f0; s16 temp_v0 = arg2->flags; if ((temp_v0 & 0x800) != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } @@ -1165,13 +1170,14 @@ void func_8029A11C(Camera *camera, Mat4 arg1, struct Actor *arg2) { arg1[3][1] = arg2->pos[1]; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_cactus3); } } -void func_8029A23C(UNUSED Camera *camera, Mat4 arg1, struct Actor *actor) { +void render_actor_kiwano_fruit_dks_jungle_parkway(UNUSED Camera *camera, Mat4 arg1, struct Actor *actor) { uintptr_t addr; + s32 maxObjectsReached; if (actor->state == 0) { return; } @@ -1179,7 +1185,8 @@ void func_8029A23C(UNUSED Camera *camera, Mat4 arg1, struct Actor *actor) { arg1[3][1] = actor->pos[1]; arg1[3][2] = actor->pos[2]; - if (func_802B4FF8(arg1, 0) == 0) { return; } + maxObjectsReached = render_set_position(arg1, 0) == 0; + if (maxObjectsReached) { return; } addr = (actor->rot[0] << 0xA) + 0x03009000; // Can this be a real symbol? Doesn't match. gDPLoadTextureBlock(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(addr), @@ -1188,7 +1195,7 @@ void func_8029A23C(UNUSED Camera *camera, Mat4 arg1, struct Actor *actor) { gSPDisplayList(gDisplayListHead++, d_course_dks_jungle_parkway_dl_kiwano_fruit); } -void func_8029A3AC(Camera *camera, Mat4 matrix, struct ShellActor *shell) { +void render_actor_shell(Camera *camera, Mat4 matrix, struct ShellActor *shell) { UNUSED s16 pad; u16 temp_t8; UNUSED s32 pad2; @@ -1203,7 +1210,8 @@ void func_8029A3AC(Camera *camera, Mat4 matrix, struct ShellActor *shell) { // Is it doing this by modifying a an address? uintptr_t phi_t3; - f32 temp_f0 = func_802B80D0(camera->pos, shell->pos, camera->rot[1], 0, D_80150130[camera - camera1], 490000.0f); + f32 temp_f0 = is_within_render_distance(camera->pos, shell->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 490000.0f); + s32 maxObjectsReached; if (temp_f0 < 0.0f) { func_80297230(camera, (struct Actor *)shell); return; @@ -1218,20 +1226,21 @@ void func_8029A3AC(Camera *camera, Mat4 matrix, struct ShellActor *shell) { } else { phi_t3 = (uintptr_t)D_802BA050; } - temp_t8 = (u16) shell->rotVelocity / 4369; - phi_t3 += sp58[temp_t8]; + temp_t8 = (u16) shell->rotVelocity / 4369; // Give a number between 0-15 + phi_t3 += sp58[temp_t8]; // Select sprite matrix[3][0] = shell->pos[0]; matrix[3][1] = (shell->pos[1] - shell->boundingBoxSize) + 1.0f; matrix[3][2] = shell->pos[2]; - if (func_802B4FF8(matrix, 0) == 0) { return; } + maxObjectsReached = render_set_position(matrix, 0) == 0; + if (maxObjectsReached) { return; } gDPLoadTextureBlock(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(phi_t3), G_IM_FMT_CI, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - if (temp_t8 < 8) { + if (temp_t8 < 8) { // Reverse shell ? gSPDisplayList(gDisplayListHead++, D_0D005338); } else { gSPDisplayList(gDisplayListHead++, D_0D005368); @@ -1249,28 +1258,30 @@ UNUSED s16 D_802B8810[] = { 0x0000, 0x0000, 0xffff, 0xffff }; -void func_8029A690(Camera *camera, Mat4 matrix, struct ShellActor *shell) { - gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTGreenShell); - func_8029A3AC(camera, matrix, shell); +void render_actor_green_shell(Camera *camera, Mat4 matrix, struct ShellActor *shell) { + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTGreenShell); // set texture + render_actor_shell(camera, matrix, shell); } -void func_8029A75C(Camera *camera, Mat4 matrix, struct ShellActor *shell) { - gDPLoadTLUT_pal256(gDisplayListHead++, &D_802BA060); - func_8029A3AC(camera, matrix, shell); +void render_actor_red_shell(Camera *camera, Mat4 matrix, struct ShellActor *shell) { + gDPLoadTLUT_pal256(gDisplayListHead++, &gTLUTRedShell); // set texture + render_actor_shell(camera, matrix, shell); } // Middle of a tlut access -void func_8029A828(Camera *camera, Mat4 matrix, struct ShellActor *shell) { - gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTBlueShell); - func_8029A3AC(camera, matrix, shell); +void render_actor_blue_shell(Camera *camera, Mat4 matrix, struct ShellActor *shell) { + gDPLoadTLUT_pal256(gDisplayListHead++, gTLUTBlueShell); // set texture + render_actor_shell(camera, matrix, shell); } -void func_8029A8F4(Camera *camera, UNUSED Mat4 arg1, struct BananaActor *banana) { - UNUSED s32 pad[3]; +// A little strange this render banana +void render_actor_banana(Camera *camera, UNUSED Mat4 arg1, struct BananaActor *banana) { + UNUSED s32 pad[2]; + s32 maxObjectsReached; Vec3s sp7C; Mat4 sp3C; - f32 temp = func_802B80D0(camera->pos, banana->pos, camera->rot[1], 0, D_80150130[camera - camera1], 490000.0f); + f32 temp = is_within_render_distance(camera->pos, banana->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 490000.0f); if (temp < 0.0f) { func_80297230(camera, (struct Actor *) banana); return; @@ -1296,23 +1307,24 @@ void func_8029A8F4(Camera *camera, UNUSED Mat4 arg1, struct BananaActor *banana) func_802B5F74(sp3C, banana->pos, sp7C); } - if (func_802B4FF8(sp3C, 0) == 0) { return; } + maxObjectsReached = render_set_position(sp3C, 0) == 0; + if (maxObjectsReached) { return; } if (banana->state != 5) { - gSPDisplayList(gDisplayListHead++, &D_0D004B48); + gSPDisplayList(gDisplayListHead++, &common_model_banana); } else { - gSPDisplayList(gDisplayListHead++, &D_0D004BD8); + gSPDisplayList(gDisplayListHead++, &common_model_flat_banana); } } -void update_obj_wario_stadium_sign(struct Actor *arg0) { +void update_actor_wario_stadium_sign(struct Actor *arg0) { arg0->rot[1] += 0xB6; } /** * If train close activate bell sound according to timing **/ -void update_obj_railroad_crossing(struct RailroadCrossing *crossing) { +void update_actor_railroad_crossing(struct RailroadCrossing *crossing) { // If train close? if (isCrossingTriggeredByIndex[crossing->crossingId] != 0) { // Timer++ @@ -1328,7 +1340,7 @@ void update_obj_railroad_crossing(struct RailroadCrossing *crossing) { } } -void update_obj_mario_raceway_sign(struct Actor *arg0) { +void update_actor_mario_raceway_sign(struct Actor *arg0) { if ((arg0->flags & 0x800) == 0) { if ((arg0->flags & 0x400) != 0) { arg0->pos[1] += 4.0f; @@ -1348,13 +1360,13 @@ UNUSED void func_8029ABD4(f32 *pos, s16 state) { } void func_8029AC18(Camera *camera, Mat4 arg1, struct Actor *arg2) { - if (func_802B80D0(camera->pos, arg2->pos, camera->rot[1], 0, D_80150130[camera - camera1], 4000000.0f) < 0) { return; } + if (is_within_render_distance(camera->pos, arg2->pos, camera->rot[1], 0, gCameraZoom[camera - camera1], 4000000.0f) < 0) { return; } arg1[3][0] = arg2->pos[0]; arg1[3][1] = arg2->pos[1] - arg2->boundingBoxSize; arg1[3][2] = arg2->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gSPDisplayList(gDisplayListHead++, &D_0D001750); switch (arg2->state) { @@ -1400,7 +1412,7 @@ void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2, f32 temp; if ((arg3 > 20) && (arg3 < 25)) { return; } - temp = func_802B80D0(arg0->pos, boat->pos, arg0->rot[1], 90000.0f, D_80150130[arg0 - camera1], 9000000.0f); + temp = is_within_render_distance(arg0->pos, boat->pos, arg0->rot[1], 90000.0f, gCameraZoom[arg0 - camera1], 9000000.0f); if (temp < 0.0f) { return; } @@ -1408,7 +1420,7 @@ void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2, gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_LIGHTING | G_SHADING_SMOOTH); func_802B5F74(spE0, boat->pos, boat->boatRot); - if (func_802B4FF8(spE0, 1) != 0) { + if (render_set_position(spE0, 1) != 0) { gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E730); gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_E058); @@ -1417,7 +1429,7 @@ void func_8029AE1C(Camera *arg0, struct PaddleWheelBoat *boat, UNUSED Mat4 arg2, vec3f_set(sp120, 0, 16.0f, -255.0f); mtxf_translate(spA0, sp120); func_802B71CC(sp60, spE0, spA0); - if (func_802B4FF8(sp60, 3) != 0) { + if (render_set_position(sp60, 3) != 0) { gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); gSPDisplayList(gDisplayListHead++, &d_course_dks_jungle_parkway_dl_FC28); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1430,14 +1442,14 @@ void func_8029B06C(Camera *arg0, struct Actor *arg1) { UNUSED s32 pad[6]; Mat4 spD8; UNUSED s32 pad2[32]; - f32 temp_f0 = func_802B80D0(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, D_80150130[arg0 - camera1], 9000000.0f); + f32 temp_f0 = is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f); if (temp_f0 < 0.0f) { return; } gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(spD8, arg1->pos, arg1->rot); - if (func_802B4FF8(spD8, 0) != 0) { + if (render_set_position(spD8, 0) != 0) { switch(arg1->state) { case 0: @@ -1473,7 +1485,7 @@ void func_8029B2E4(Camera *arg0, struct Actor *arg1) { UNUSED s32 pad2[32]; f32 temp_f0; - temp_f0 = func_802B80D0(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, D_80150130[arg0 - camera1], 9000000.0f); + temp_f0 = is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f); if (temp_f0 < 0.0f) { return; } gSPTexture(gDisplayListHead++, 0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON); @@ -1481,7 +1493,7 @@ void func_8029B2E4(Camera *arg0, struct Actor *arg1) { func_802B5F74(spC8, arg1->pos, arg1->rot); - if (func_802B4FF8(spC8, 0) != 0) { + if (render_set_position(spC8, 0) != 0) { if (gActiveScreenMode == SCREEN_MODE_1P) { if (temp_f0 < 160000.0f) { @@ -1503,7 +1515,7 @@ void func_8029B4E0(Camera *arg0, struct Actor *arg1) { UNUSED s32 pad[6]; Mat4 spC8; UNUSED s32 pad2[32]; - f32 temp_f0 = func_802B80D0(arg0->pos,arg1->pos, arg0->rot[1], 2500.0f, D_80150130[arg0 - camera1], 9000000.0f); + f32 temp_f0 = is_within_render_distance(arg0->pos,arg1->pos, arg0->rot[1], 2500.0f, gCameraZoom[arg0 - camera1], 9000000.0f); if (!(temp_f0 < 0.0f)) { @@ -1513,7 +1525,7 @@ void func_8029B4E0(Camera *arg0, struct Actor *arg1) { func_802B5F74(spC8, arg1->pos, arg1->rot); func_802B5F00(spC8, 0.1f); - if (func_802B4FF8(spC8, 0) != 0) { + if (render_set_position(spC8, 0) != 0) { if (gActiveScreenMode == SCREEN_MODE_1P) { if (temp_f0 < 160000.0f) { @@ -1536,7 +1548,7 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) { UNUSED s32 pad[6]; Mat4 spC8; UNUSED s32 pad2[32]; - f32 temp_f0 = func_802B80D0(camera->pos, arg1->pos, camera->rot[1], 2500.0f, D_80150130[camera - camera1], 9000000.0f); + f32 temp_f0 = is_within_render_distance(camera->pos, arg1->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1], 9000000.0f); if (!(temp_f0 < 0.0f)) { @@ -1544,7 +1556,7 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) { gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(spC8, arg1->pos, arg1->rot); - if (func_802B4FF8(spC8, 0) != 0) { + if (render_set_position(spC8, 0) != 0) { if (gActiveScreenMode == SCREEN_MODE_1P) { if (temp_f0 < 160000.0f) { @@ -1566,20 +1578,22 @@ void func_8029B6EC(Camera *camera, struct Actor* arg1) { // Spins train wheels? void func_8029B8E8(Camera *camera, struct TrainCar *actor) { - UNUSED s32 pad[3]; + UNUSED s32 pad[2]; + s32 maxObjectsReached; Vec3f sp160; Mat4 sp120; Mat4 spE0; Mat4 spA0; - f32 temp_f0 = func_802B80D0(camera->pos, actor->pos, camera->rot[1], 2500.0f, D_80150130[camera - camera1], 9000000.0f); + f32 temp_f0 = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1], 9000000.0f); if (temp_f0 < 0.0f) { return; } gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(sp120, actor->pos, actor->rot); - if (func_802B4FF8(sp120, 0) == 0) { return; } + maxObjectsReached = render_set_position(sp120, 0) == 0; + if (maxObjectsReached) { return; } if (temp_f0 < 122500.0f) { @@ -1604,7 +1618,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1614,7 +1629,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1624,7 +1640,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1634,7 +1651,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1644,7 +1662,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1654,7 +1673,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1664,7 +1684,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1674,7 +1695,8 @@ void func_8029B8E8(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + maxObjectsReached = render_set_position(spA0, 3) == 0; + if (maxObjectsReached) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22D70); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1687,14 +1709,14 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) { Mat4 spE0; Mat4 spA0; - f32 temp_f0 = func_802B80D0(camera->pos, actor->pos, camera->rot[1], 625.0f, D_80150130[camera - camera1], 9000000.0f); + f32 temp_f0 = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 625.0f, gCameraZoom[camera - camera1], 9000000.0f); if (temp_f0 < 0.0f) { return; } gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(sp120, actor->pos, actor->rot); - if (func_802B4FF8(sp120, 0) == 0) { return; } + if (render_set_position(sp120, 0) == 0) { return; } if (temp_f0 < 250000.0f) { @@ -1715,7 +1737,7 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1725,7 +1747,7 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1735,7 +1757,7 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1745,7 +1767,7 @@ void func_8029BFB0(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); @@ -1757,14 +1779,15 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { Mat4 spE0; Mat4 spA0; - f32 temp_f0 = func_802B80D0(camera->pos, actor->pos, camera->rot[1], 2025.0f, D_80150130[camera - camera1], 9000000.0f); + f32 temp_f0 = is_within_render_distance(camera->pos, actor->pos, camera->rot[1], 2025.0f, gCameraZoom[camera - camera1], 9000000.0f); if (temp_f0 < 0.0f) { return; } gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(sp120, actor->pos, actor->rot); - if (func_802B4FF8(sp120, 0) == 0) { return; } + + if (render_set_position(sp120, 0) == 0) { return; } if (temp_f0 < 250000.0f) { @@ -1789,7 +1812,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1799,7 +1822,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1809,7 +1832,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1819,7 +1842,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1829,7 +1852,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1839,7 +1862,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1849,7 +1872,7 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); @@ -1859,14 +1882,14 @@ void func_8029C3CC(Camera *camera, struct TrainCar *actor) { mtxf_translate(spE0, sp160); func_802B71CC(spA0, sp120, spE0); - if (func_802B4FF8(spA0, 3) == 0) { return; } + if (render_set_position(spA0, 3) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_kalimari_desert_dl_22DB8); gSPPopMatrix(gDisplayListHead++, G_MTX_MODELVIEW); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } -void func_8029CA90(Camera *camera, struct FallingRock *rock) { +void render_actor_falling_rock(Camera *camera, struct FallingRock *rock) { Vec3s sp98; Vec3f sp8C; Mat4 sp4C; @@ -1875,12 +1898,12 @@ void func_8029CA90(Camera *camera, struct FallingRock *rock) { if (rock->respawnTimer != 0) { return; } - temp_f0 = func_802B80D0(camera->pos, rock->pos, camera->rot[1], 400.0f, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, rock->pos, camera->rot[1], 400.0f, gCameraZoom[camera - camera1], 4000000.0f); if (temp_f0 < 0.0f) { return; } if (temp_f0 < 250000.0f) { - + if (rock->unk30.unk34 == 1) { sp8C[0] = rock->pos[0]; sp8C[2] = rock->pos[2]; @@ -1890,14 +1913,14 @@ void func_8029CA90(Camera *camera, struct FallingRock *rock) { sp98[2] = 0; sp8C[1] = temp_f0 + 2.0f; func_802B5F74(sp4C, sp8C, sp98); - if (func_802B4FF8(sp4C, 0) == 0) { + if (render_set_position(sp4C, 0) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_choco_mountain_dl_6F88); } } func_802B5F74(sp4C, rock->pos, rock->rot); - if (func_802B4FF8(sp4C, 0) == 0) { + if (render_set_position(sp4C, 0) == 0) { return; } gSPDisplayList(gDisplayListHead++, d_course_choco_mountain_dl_falling_rock); @@ -2350,7 +2373,7 @@ void func_8029E158(void) { dma_textures(D_0F058550, 0x00000364U, 0x00000400U); break; } - func_80297818(); + init_red_shell_texture(); destroy_all_actors(); place_course_actors(); func_800122D8(); @@ -3318,6 +3341,7 @@ void evaluate_player_collision(void) { } } +// It's look like to check collision between item and other different item void func_802A0E44(void) { struct Actor *phi_s0; struct Actor *temp_a1; @@ -3385,7 +3409,7 @@ void func_802A1064(struct FakeItemBox *fake_item_box) { } } -void update_obj_fake_item_box(struct FakeItemBox *fake_item_box) { +void update_actor_fake_item_box(struct FakeItemBox *fake_item_box) { u32 temp_v1 = fake_item_box->playerId; Player *temp_v0_4 = &gPlayers[temp_v1]; struct Controller *temp_v1_3; @@ -3487,7 +3511,7 @@ void func_802A14BC(f32 arg0, f32 arg1, f32 arg2) { D_802BA05C = &gActorList[temp_a0]; } -void update_obj_item_box_hot_air_balloon(struct ItemBox *itemBox) { +void update_actor_item_box_hot_air_balloon(struct ItemBox *itemBox) { switch(itemBox->state) { case 5: itemBox->rot[0] += 0xB6; @@ -3508,7 +3532,7 @@ void update_obj_item_box_hot_air_balloon(struct ItemBox *itemBox) { } } -void update_obj_item_box(struct ItemBox *itemBox) { +void update_actor_item_box(struct ItemBox *itemBox) { switch (itemBox->state) { case 0: itemBox->state = 1; @@ -3557,7 +3581,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { f32 temp_f2_2; f32 someMultiplier; - if (func_802B80D0(camera->pos, fakeItemBox->pos, camera->rot[1], 2500.0f, D_80150130[camera - camera1], 1000000.0f) < 0) { + if (is_within_render_distance(camera->pos, fakeItemBox->pos, camera->rot[1], 2500.0f, gCameraZoom[camera - camera1], 1000000.0f) < 0) { func_80297230(camera, (struct Actor *) fakeItemBox); return; } @@ -3578,13 +3602,13 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { func_802B5F00(someMatrix2, fakeItemBox->sizeScaling); if (fakeItemBox->state != 2) { - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } - gSPDisplayList(gDisplayListHead++, D_0D002F80); + gSPDisplayList(gDisplayListHead++, common_model_fake_itembox); func_802B5F74(someMatrix2, fakeItemBox->pos, fakeItemBox->rot); func_802B5F00(someMatrix2, fakeItemBox->sizeScaling); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); @@ -3624,7 +3648,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { someVec[2] = thing; func_802B5450(someMatrix2, someMatrix3, someVec); - if (!func_802B4FF8(someMatrix3, 0)) { return; } + if (!render_set_position(someMatrix3, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D003158); temp_f2_2 = 0.8f * thing; @@ -3634,7 +3658,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { someVec[2] = temp_f12; func_802B5450(someMatrix2, someMatrix3, someVec); - if (!func_802B4FF8(someMatrix3, 0)) { return; } + if (!render_set_position(someMatrix3, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D0031B8); temp_f0_2 = -0.5f * thing; @@ -3643,7 +3667,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { someVec[2] = temp_f0_2; func_802B5450(someMatrix2, someMatrix3, someVec); - if (!func_802B4FF8(someMatrix3, 0)) { return; } + if (!render_set_position(someMatrix3, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D003128); if (!(fakeItemBox->someTimer & 1)) { @@ -3656,7 +3680,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { someVec[2] = -1.0f * thing; func_802B5450(someMatrix2, someMatrix3, someVec); - if (!func_802B4FF8(someMatrix3, 0)) { return; } + if (!render_set_position(someMatrix3, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D0031E8); temp_f0_3 = -0.8f * thing; @@ -3665,7 +3689,7 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { someVec[2] = temp_f0_2; func_802B5450(someMatrix2, someMatrix3, someVec); - if (!func_802B4FF8(someMatrix3, 0)) { return; } + if (!render_set_position(someMatrix3, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D003188); someVec[0] = temp_f0_3; @@ -3673,13 +3697,14 @@ void func_802A171C(Camera *camera, struct FakeItemBox *fakeItemBox) { someVec[2] = temp_f12; func_802B5450(someMatrix2, someMatrix3, someVec); - if (!func_802B4FF8(someMatrix3, 0)) { return; } + if (!render_set_position(someMatrix3, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D0030F8); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); } } +// render item box need more info to document this properly void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { UNUSED s32 pad[2]; Vec3f someVec1; @@ -3698,7 +3723,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { f32 temp_f2_2; f32 someMultiplier; - temp_f0 = func_802B80D0(camera->pos, item_box->pos, camera->rot[1], 0.0f, D_80150130[camera - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(camera->pos, item_box->pos, camera->rot[1], 0.0f, gCameraZoom[camera - camera1], 4000000.0f); if (!(temp_f0 < 0.0f) && !(600000.0f < temp_f0)) { if ((item_box->state == 2) && (temp_f0 < 100000.0f)) { someRot[0] = 0; @@ -3709,28 +3734,28 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec2[2] = item_box->pos[2]; func_802B5F74(someMatrix1, someVec2, someRot); - if (!func_802B4FF8(someMatrix1, 0)) { return; } + if (!render_set_position(someMatrix1, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D002EE8); someRot[1] = item_box->rot[1] * 2; someVec2[1] = item_box->pos[1]; func_802B5F74(someMatrix1, someVec2, someRot); - if (!func_802B4FF8(someMatrix1, 0)) { return; } + if (!render_set_position(someMatrix1, 0)) { return; } - gSPDisplayList(gDisplayListHead++, D_0D003008); + gSPDisplayList(gDisplayListHead++, itemBoxQuestionMarkModel); } if (item_box->state == 5) { func_802B5F74(someMatrix1, item_box->pos, item_box->rot); - if (!func_802B4FF8(someMatrix1, 0)) { return; } + if (!render_set_position(someMatrix1, 0)) { return; } - gSPDisplayList(gDisplayListHead++, D_0D003008); + gSPDisplayList(gDisplayListHead++, itemBoxQuestionMarkModel); } if (item_box->state != 3) { func_802B5F74(someMatrix1, item_box->pos, item_box->rot); - if (!func_802B4FF8(someMatrix1, 0)) { return; } + if (!render_set_position(someMatrix1, 0)) { return; } gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); @@ -3771,7 +3796,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec1[2] = thing; func_802B5450(someMatrix1, someMatrix2, someVec1); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D003158); temp_f2_2 = 0.8f * thing; @@ -3781,7 +3806,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec1[2] = temp_f12; func_802B5450(someMatrix1, someMatrix2, someVec1); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D0031B8); temp_f0_2 = -0.5f * thing; @@ -3790,7 +3815,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec1[2] = temp_f0_2; func_802B5450(someMatrix1, someMatrix2, someVec1); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D003128); if (!(item_box->someTimer & 1)) { @@ -3803,7 +3828,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec1[2] = -1.0f * thing; func_802B5450(someMatrix1, someMatrix2, someVec1); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D0031E8); temp_f0_3 = -0.8f * thing; @@ -3812,7 +3837,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec1[2] = temp_f0_2; func_802B5450(someMatrix1, someMatrix2, someVec1); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D003188); someVec1[0] = temp_f0_3; @@ -3820,7 +3845,7 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { someVec1[2] = temp_f12; func_802B5450(someMatrix1, someMatrix2, someVec1); - if (!func_802B4FF8(someMatrix2, 0)) { return; } + if (!render_set_position(someMatrix2, 0)) { return; } gSPDisplayList(gDisplayListHead++, D_0D0030F8); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); @@ -3831,14 +3856,14 @@ void func_802A1EA0(Camera *camera, struct ItemBox *item_box) { void func_802A269C(Camera *arg0, struct Actor *arg1) { Mat4 sp38; - f32 unk = func_802B80D0(arg0->pos, arg1->pos, arg0->rot[1], 0, D_80150130[arg0 - camera1], 16000000.0f); + f32 unk = is_within_render_distance(arg0->pos, arg1->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f); if (!(unk < 0.0f)) { gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH); gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(sp38, arg1->pos, arg1->rot); - if (func_802B4FF8(sp38, 0) != 0) { + if (render_set_position(sp38, 0) != 0) { gSPDisplayList(gDisplayListHead++, d_course_wario_stadium_dl_sign); } @@ -3852,7 +3877,7 @@ void func_802A27A0(Camera *arg0, Mat4 arg1, struct YoshiValleyEgg *egg, u16 arg3 f32 temp_f0; if (gGamestate != CREDITS_SEQUENCE) { - temp_f0 = func_802B80D0(arg0->pos, egg->pos, arg0->rot[1], 200.0f, D_80150130[arg0 - camera1], 16000000.0f); + temp_f0 = is_within_render_distance(arg0->pos, egg->pos, arg0->rot[1], 200.0f, gCameraZoom[arg0 - camera1], 16000000.0f); if (temp_f0 < 0.0f) { return; } @@ -3874,7 +3899,7 @@ void func_802A27A0(Camera *arg0, Mat4 arg1, struct YoshiValleyEgg *egg, u16 arg3 sp5C[1] = egg->eggRot; sp5C[2] = 0; func_802B5F74(sp60, egg->pos, sp5C); - if (func_802B4FF8(sp60, 0) == 0) { return; } + if (render_set_position(sp60, 0) == 0) { return; } gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING); gSPDisplayList(gDisplayListHead++, d_course_yoshi_valley_dl_16D70); @@ -3883,7 +3908,7 @@ void func_802A27A0(Camera *arg0, Mat4 arg1, struct YoshiValleyEgg *egg, u16 arg3 arg1[3][1] = egg->pos[1]; arg1[3][2] = egg->pos[2]; - if (func_802B4FF8(arg1, 0) != 0) { + if (render_set_position(arg1, 0) != 0) { gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); gSPDisplayList(gDisplayListHead++, d_course_yoshi_valley_dl_egg_lod0); } @@ -3897,12 +3922,12 @@ void func_802A29BC(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) { if (temp & 0x800) { return; } - unk = func_802B80D0(arg0->pos, arg2->pos, arg0->rot[1], 0, D_80150130[arg0 - camera1], 16000000.0f); + unk = is_within_render_distance(arg0->pos, arg2->pos, arg0->rot[1], 0, gCameraZoom[arg0 - camera1], 16000000.0f); if (!(unk < 0.0f)) { gSPSetGeometryMode(gDisplayListHead++, G_SHADING_SMOOTH); gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING); func_802B5F74(sp40, arg2->pos, arg2->rot); - if (func_802B4FF8(sp40, 0) != 0) { + if (render_set_position(sp40, 0) != 0) { gSPDisplayList(gDisplayListHead++, d_course_mario_raceway_dl_sign); } } @@ -3911,12 +3936,12 @@ void func_802A29BC(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) { void func_802A2AD0(Camera *arg0, struct RailroadCrossing *rr_crossing) { UNUSED Vec3s sp80 = {0, 0, 0}; Mat4 sp40; - f32 unk = func_802B80D0(arg0->pos, rr_crossing->pos, arg0->rot[1], 0.0f, D_80150130[arg0 - camera1], 4000000.0f); + f32 unk = is_within_render_distance(arg0->pos, rr_crossing->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1], 4000000.0f); if (!(unk < 0.0f)) { func_802B5F74(sp40, rr_crossing->pos, rr_crossing->rot); - if (func_802B4FF8(sp40, 0) != 0) { + if (render_set_position(sp40, 0) != 0) { gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); @@ -3945,14 +3970,14 @@ void func_802A2C78(Camera *arg0, UNUSED Mat4 arg1, struct Actor *arg2) { return; } - temp_f0 = func_802B80D0(arg0->pos, arg2->pos, arg0->rot[1], 0.0f, D_80150130[arg0 - camera1], 4000000.0f); + temp_f0 = is_within_render_distance(arg0->pos, arg2->pos, arg0->rot[1], 0.0f, gCameraZoom[arg0 - camera1], 4000000.0f); if (!(temp_f0 < 0.0f)) { if (((temp_v0 & 0x400) == 0) && (temp_f0 < 250000.0f)) { func_8029794C(arg2->pos, arg2->rot, 2.0f); } func_802B5F74(sp68, arg2->pos, spA8); - if (func_802B4FF8(sp68, 0) != 0) { + if (render_set_position(sp68, 0) != 0) { gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE); gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING); @@ -4011,9 +4036,9 @@ void func_802A2F34(struct UnkStruct_800DC5EC *arg0) { } } -void func_802A3008(struct UnkStruct_800DC5EC *arg0) { +void render_course_actors(struct UnkStruct_800DC5EC *arg0) { Camera *camera = arg0->camera; - u16 sp92 = arg0->pathCounter; + u16 pathCounter = arg0->pathCounter; UNUSED s32 pad[12]; s32 i; @@ -4054,59 +4079,59 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) { continue; } switch (actor->type) { - case 2: - func_80299144(camera, D_801502C0, actor); + case ACTOR_TREE_MARIO_RACEWAY: + render_actor_tree_mario_raceway(camera, D_801502C0, actor); break; - case 3: - func_8029930C(camera, D_801502C0, actor); + case ACTOR_TREE_YOSHI_VALLEY: + render_actor_tree_yoshi_valley(camera, D_801502C0, actor); break; - case 4: - func_802994D4(camera, D_801502C0, actor); + case ACTOR_TREE_ROYAL_RACEWAY: + render_actor_tree_royal_raceway(camera, D_801502C0, actor); break; - case 19: - func_8029969C(camera, D_801502C0, actor); + case ACTOR_TREE_MOO_MOO_FARM: + render_actor_tree_moo_moo_farm(camera, D_801502C0, actor); break; - case 26: + case 0x1A: func_80299864(camera, D_801502C0, actor); break; - case 28: - func_80299A2C(camera, D_801502C0, actor); + case ACTOR_TREE_BOWSERS_CASTLE: + render_actor_tree_bowser_castle(camera, D_801502C0, actor); break; - case 33: - func_80299BF4(camera, D_801502C0, actor); + case ACTOR_BUSH_BOWSERS_CASTLE: + render_actor_bush_bowser_castle(camera, D_801502C0, actor); break; - case 29: - func_80299DBC(camera, D_801502C0, actor); + case ACTOR_TREE_FRAPPE_SNOWLAND: + render_actor_tree_frappe_snowland(camera, D_801502C0, actor); break; - case 30: - func_80299EDC(camera, D_801502C0, actor); + case ACTOR_CACTUS1_KALAMARI_DESERT: + render_actor_tree_cactus1_kalimari_desert(camera, D_801502C0, actor); break; - case 31: - func_80299FFC(camera, D_801502C0, actor); + case ACTOR_CACTUS2_KALAMARI_DESERT: + render_actor_tree_cactus2_kalimari_desert(camera, D_801502C0, actor); break; - case 32: - func_8029A11C(camera, D_801502C0, actor); + case ACTOR_CACTUS3_KALAMARI_DESERT: + render_actor_tree_cactus3_kalimari_desert(camera, D_801502C0, actor); break; case ACTOR_FALLING_ROCK: - func_8029CA90(camera, (struct FallingRock *) actor); + render_actor_falling_rock(camera, (struct FallingRock *) actor); break; case ACTOR_KIWANO_FRUIT: - func_8029A23C(camera, D_801502C0, actor); + render_actor_kiwano_fruit_dks_jungle_parkway(camera, D_801502C0, actor); break; case ACTOR_BANANA: - func_8029A8F4(camera, D_801502C0, (struct BananaActor *) actor); + render_actor_banana(camera, D_801502C0, (struct BananaActor *) actor); break; case ACTOR_GREEN_SHELL: - func_8029A690(camera, D_801502C0, (struct ShellActor *) actor); + render_actor_green_shell(camera, D_801502C0, (struct ShellActor *) actor); break; case ACTOR_RED_SHELL: - func_8029A75C(camera, D_801502C0, (struct ShellActor *) actor); + render_actor_red_shell(camera, D_801502C0, (struct ShellActor *) actor); break; case ACTOR_BLUE_SPINY_SHELL: - func_8029A828(camera, D_801502C0, (struct ShellActor *) actor); + render_actor_blue_shell(camera, D_801502C0, (struct ShellActor *) actor); break; case ACTOR_PIRANHA_PLANT: - func_80298328(camera, D_801502C0, (struct PiranhaPlant *) actor); + render_actor_piranha_plant(camera, D_801502C0, (struct PiranhaPlant *) actor); break; case ACTOR_TRAIN_ENGINE: func_8029B8E8(camera, (struct TrainCar *) actor); @@ -4117,10 +4142,10 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) { case ACTOR_TRAIN_PASSENGER_CAR: func_8029C3CC(camera, (struct TrainCar *) actor); break; - case 18: - func_80297A50(camera, D_801502C0, actor); + case ACTOR_COW: + render_actor_cow(camera, D_801502C0, actor); break; - case 20: + case 0x14: func_8029AC18(camera, D_801502C0, actor); break; case ACTOR_MARIO_RACEWAY_SIGN: @@ -4133,7 +4158,7 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) { func_802A2C78(camera, D_801502C0, actor); break; case ACTOR_PADDLE_WHEEL_BOAT: - func_8029AE1C(camera, (struct PaddleWheelBoat *) actor, D_801502C0, sp92); + func_8029AE1C(camera, (struct PaddleWheelBoat *) actor, D_801502C0, pathCounter); break; case ACTOR_BOX_TRUCK: func_8029B06C(camera, actor); @@ -4151,7 +4176,7 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) { func_802A2AD0(camera, (struct RailroadCrossing *) actor); break; case ACTOR_YOSHI_VALLEY_EGG: - func_802A27A0(camera, D_801502C0, (struct YoshiValleyEgg *) actor, sp92); + func_802A27A0(camera, D_801502C0, (struct YoshiValleyEgg *) actor, pathCounter); break; } } @@ -4165,7 +4190,7 @@ void func_802A3008(struct UnkStruct_800DC5EC *arg0) { } } -void update_simple_objects(void) { +void update_course_actors(void) { struct Actor *actor; s32 i; for (i = 0; i < ACTOR_LIST_SIZE; i++) { @@ -4177,82 +4202,82 @@ void update_simple_objects(void) { switch (actor->type) { case ACTOR_FALLING_ROCK: - update_obj_falling_rocks((struct FallingRock *) actor); + update_actor_falling_rocks((struct FallingRock *) actor); break; case ACTOR_GREEN_SHELL: - update_obj_green_shell((struct ShellActor *) actor); + update_actor_green_shell((struct ShellActor *) actor); break; case ACTOR_RED_SHELL: - update_obj_red_blue_shell((struct ShellActor *) actor); + update_actor_red_blue_shell((struct ShellActor *) actor); break; case ACTOR_BLUE_SPINY_SHELL: - update_obj_red_blue_shell((struct ShellActor *) actor); + update_actor_red_blue_shell((struct ShellActor *) actor); break; case ACTOR_KIWANO_FRUIT: - update_obj_kiwano_fruit((struct KiwanoFruit *)actor); + update_actor_kiwano_fruit((struct KiwanoFruit *)actor); break; case ACTOR_BANANA: - update_obj_banana((struct BananaActor *) actor); + update_actor_banana((struct BananaActor *) actor); break; case ACTOR_PADDLE_WHEEL_BOAT: - update_obj_paddle_wheel((struct PaddleWheelBoat *) actor); + update_actor_paddle_wheel((struct PaddleWheelBoat *) actor); break; case ACTOR_TRAIN_ENGINE: - update_obj_train_engine((struct TrainCar *) actor); + update_actor_train_engine((struct TrainCar *) actor); break; case ACTOR_TRAIN_TENDER: - update_obj_train_car1((struct TrainCar *) actor); + update_actor_train_car1((struct TrainCar *) actor); break; case ACTOR_TRAIN_PASSENGER_CAR: - update_obj_train_car2((struct TrainCar *) actor); + update_actor_train_car2((struct TrainCar *) actor); break; case ACTOR_ITEM_BOX: - update_obj_item_box((struct ItemBox *) actor); + update_actor_item_box((struct ItemBox *) actor); break; case ACTOR_HOT_AIR_BALLOON_ITEM_BOX: - update_obj_item_box_hot_air_balloon((struct ItemBox *)actor); + update_actor_item_box_hot_air_balloon((struct ItemBox *)actor); break; case ACTOR_FAKE_ITEM_BOX: - update_obj_fake_item_box((struct FakeItemBox *) actor); + update_actor_fake_item_box((struct FakeItemBox *) actor); break; case ACTOR_PIRANHA_PLANT: - update_obj_piranha_plant((struct PiranhaPlant *) actor); + update_actor_piranha_plant((struct PiranhaPlant *) actor); break; case ACTOR_BANANA_BUNCH: - update_obj_banana_bunch((struct BananaBunchParent *) actor); + update_actor_banana_bunch((struct BananaBunchParent *) actor); break; case ACTOR_TRIPLE_GREEN_SHELL: - update_obj_triple_shell((TripleShellParent *) actor, ACTOR_GREEN_SHELL); + update_actor_triple_shell((TripleShellParent *) actor, ACTOR_GREEN_SHELL); break; case ACTOR_TRIPLE_RED_SHELL: - update_obj_triple_shell((TripleShellParent *) actor, ACTOR_RED_SHELL); + update_actor_triple_shell((TripleShellParent *) actor, ACTOR_RED_SHELL); break; case ACTOR_MARIO_RACEWAY_SIGN: - update_obj_mario_raceway_sign(actor); + update_actor_mario_raceway_sign(actor); break; case ACTOR_WARIO_STADIUM_SIGN: - update_obj_wario_stadium_sign(actor); + update_actor_wario_stadium_sign(actor); break; case ACTOR_RAILROAD_CROSSING: - update_obj_railroad_crossing((struct RailroadCrossing *) actor); + update_actor_railroad_crossing((struct RailroadCrossing *) actor); break; - case 2: - case 3: - case 4: - case 19: - case 25: - case 26: - case 27: - case 28: - case 29: - case 30: - case 31: - case 32: - case 33: - update_obj_trees_cacti_shrubs(actor); + case ACTOR_TREE_MARIO_RACEWAY: + case ACTOR_TREE_YOSHI_VALLEY: + case ACTOR_TREE_ROYAL_RACEWAY: + case ACTOR_TREE_MOO_MOO_FARM: + case ACTOR_PALM_TREE: + case 0x1A: // A plant? + case 0X1B: + case ACTOR_TREE_BOWSERS_CASTLE: + case ACTOR_TREE_FRAPPE_SNOWLAND: + case ACTOR_CACTUS1_KALAMARI_DESERT: + case ACTOR_CACTUS2_KALAMARI_DESERT: + case ACTOR_CACTUS3_KALAMARI_DESERT: + case ACTOR_BUSH_BOWSERS_CASTLE: + update_actor_trees_cacti_shrubs(actor); break; case ACTOR_YOSHI_VALLEY_EGG: - update_obj_yoshi_valley_egg((struct YoshiValleyEgg *) actor); + update_actor_yoshi_valley_egg((struct YoshiValleyEgg *) actor); break; } } diff --git a/src/racing/actors.h b/src/racing/actors.h index 9b14e4e32..4b9de1249 100644 --- a/src/racing/actors.h +++ b/src/racing/actors.h @@ -6,7 +6,7 @@ void func_8029E158(void); void cleanup_red_and_green_shells(struct ShellActor*); -void actor_init(struct Actor*, f32*, s16*, f32*, s16); +void actor_init(struct Actor*, Vec3f, s16*, f32*, s16); void func_80297230(Camera*, struct Actor*); void func_802972B8(Camera*, struct Actor*); void func_80297340(Camera*); @@ -16,45 +16,45 @@ void func_802976EC(Collision*, Vec3s); void func_80297760(struct Actor*, Vec3f); void func_802977B0(Player*); void func_802977E4(Player*); -void func_80297818(void); +void init_red_shell_texture(void); void func_80297944(void); void func_8029794C(Vec3f, Vec3s, f32); void func_802979F8(struct Actor*, f32); -void func_80297A50(Camera*, Mat4, struct Actor*); -void update_obj_yoshi_valley_egg(struct YoshiValleyEgg*); -void update_obj_trees_cacti_shrubs(struct Actor*); -void update_obj_kiwano_fruit(struct KiwanoFruit*); -void update_obj_paddle_wheel(struct PaddleWheelBoat*); -void update_obj_train_engine(struct TrainCar*); -void update_obj_train_car1(struct TrainCar*); -void update_obj_train_car2(struct TrainCar*); -void update_obj_piranha_plant(struct PiranhaPlant*); -void func_80298328(Camera*, Mat4, struct PiranhaPlant*); +void render_actor_cow(Camera*, Mat4, struct Actor*); +void update_actor_yoshi_valley_egg(struct YoshiValleyEgg*); +void update_actor_trees_cacti_shrubs(struct Actor*); +void update_actor_kiwano_fruit(struct KiwanoFruit*); +void update_actor_paddle_wheel(struct PaddleWheelBoat*); +void update_actor_train_engine(struct TrainCar*); +void update_actor_train_car1(struct TrainCar*); +void update_actor_train_car2(struct TrainCar*); +void update_actor_piranha_plant(struct PiranhaPlant*); +void render_actor_piranha_plant(Camera*, Mat4, struct PiranhaPlant*); void func_802986B4(Camera*, Mat4, struct Actor*); void func_80298AC0(Player*); void func_80298D7C(Camera*, Mat4, struct Actor*); void func_80298C94(void); void func_80298D10(void); -void func_80299144(Camera*, Mat4, struct Actor*); -void func_8029930C(Camera*, Mat4, struct Actor*); -void func_802994D4(Camera*, Mat4, struct Actor*); -void func_8029969C(Camera*, Mat4, struct Actor*); +void render_actor_tree_mario_raceway(Camera*, Mat4, struct Actor*); +void render_actor_tree_yoshi_valley(Camera*, Mat4, struct Actor*); +void render_actor_tree_royal_raceway(Camera*, Mat4, struct Actor*); +void render_actor_tree_moo_moo_farm(Camera*, Mat4, struct Actor*); void func_80299864(Camera*, Mat4, struct Actor*); -void func_80299A2C(Camera*, Mat4, struct Actor*); -void func_80299BF4(Camera*, Mat4, struct Actor*); -void func_80299DBC(Camera*, Mat4, struct Actor*); -void func_80299EDC(Camera*, Mat4, struct Actor*); -void func_80299FFC(Camera*, Mat4, struct Actor*); -void func_8029A11C(Camera*, Mat4, struct Actor*); -void func_8029A23C(Camera*, Mat4, struct Actor*); -void func_8029A3AC(Camera*, Mat4, struct ShellActor*); -void func_8029A690(Camera*, Mat4, struct ShellActor*); -void func_8029A75C(Camera*, Mat4, struct ShellActor*); -void func_8029A828(Camera*, Mat4, struct ShellActor*); -void func_8029A8F4(Camera*, Mat4, struct BananaActor*); -void update_obj_wario_stadium_sign(struct Actor*); -void update_obj_railroad_crossing(struct RailroadCrossing*); -void update_obj_mario_raceway_sign(struct Actor*); +void render_actor_tree_bowser_castle(Camera*, Mat4, struct Actor*); +void render_actor_bush_bowser_castle(Camera*, Mat4, struct Actor*); +void render_actor_tree_frappe_snowland(Camera*, Mat4, struct Actor*); +void render_actor_tree_cactus1_kalimari_desert(Camera*, Mat4, struct Actor*); +void render_actor_tree_cactus2_kalimari_desert(Camera*, Mat4, struct Actor*); +void render_actor_tree_cactus3_kalimari_desert(Camera*, Mat4, struct Actor*); +void render_actor_kiwano_fruit_dks_jungle_parkway(Camera*, Mat4, struct Actor*); +void render_actor_shell(Camera*, Mat4, struct ShellActor*); +void render_actor_green_shell(Camera*, Mat4, struct ShellActor*); +void render_actor_red_shell(Camera*, Mat4, struct ShellActor*); +void render_actor_blue_shell(Camera*, Mat4, struct ShellActor*); +void render_actor_banana(Camera*, Mat4, struct BananaActor*); +void update_actor_wario_stadium_sign(struct Actor*); +void update_actor_railroad_crossing(struct RailroadCrossing*); +void update_actor_mario_raceway_sign(struct Actor*); void func_8029ABD4(Vec3f, s16); void func_8029AC18(Camera*, Mat4, struct Actor*); void func_8029AE14(void); @@ -66,12 +66,12 @@ void func_8029B6EC(Camera*, struct Actor*); void func_8029B8E8(Camera*, struct TrainCar*); void func_8029BFB0(Camera*, struct TrainCar*); void func_8029C3CC(Camera*, struct TrainCar*); -void func_8029CA90(Camera*, struct FallingRock*); +void render_actor_falling_rock(Camera*, struct FallingRock*); void place_piranha_plants(struct ActorSpawnData*); void place_palm_trees(struct ActorSpawnData*); void func_8029CF0C(struct ActorSpawnData*, struct FallingRock*); void place_falling_rocks(struct ActorSpawnData*); -void update_obj_falling_rocks(struct FallingRock*); +void update_actor_falling_rocks(struct FallingRock*); void spawn_foliage(struct ActorSpawnData*); void place_all_item_boxes(struct ActorSpawnData*); void init_kiwano_fruit(void); @@ -96,10 +96,10 @@ void func_802A0450(Player*, struct Actor*); void evaluate_player_collision(void); void func_802A0E44(void); void func_802A1064(struct FakeItemBox*); -void update_obj_fake_item_box(struct FakeItemBox*); +void update_actor_fake_item_box(struct FakeItemBox*); void func_802A14BC(f32, f32, f32); -void update_obj_item_box_hot_air_balloon(struct ItemBox*); -void update_obj_item_box(struct ItemBox*); +void update_actor_item_box_hot_air_balloon(struct ItemBox*); +void update_actor_item_box(struct ItemBox*); void func_802A171C(Camera*, struct FakeItemBox*); void func_802A1EA0(Camera*, struct ItemBox*); void func_802A269C(Camera*, struct Actor*); @@ -108,8 +108,8 @@ void func_802A29BC(Camera*, Mat4, struct Actor*); void func_802A2AD0(Camera*, struct RailroadCrossing*); void func_802A2C78(Camera*, Mat4, struct Actor*); void func_802A2F34(struct UnkStruct_800DC5EC*); -void func_802A3008(struct UnkStruct_800DC5EC*); -void update_simple_objects(void); +void render_course_actors(struct UnkStruct_800DC5EC*); +void update_course_actors(void); // audio/external.c extern void func_800C98B8(Vec3f, Vec3f, u32); @@ -121,7 +121,7 @@ extern u8 *D_802BA050; extern u8 *D_802BA054; extern u8 *D_802BA058; extern struct Actor *D_802BA05C; -extern s8 D_802BA060[512]; // tlut 256 +extern s8 gTLUTRedShell[512]; // tlut 256 extern u16 D_802BA260; extern s32 gPlayerCountSelection1; @@ -141,7 +141,7 @@ extern Camera *camera1; extern Gfx *gDisplayListHead; extern s32 gModeSelection; extern s16 gCurrentCourseId; -extern f32 D_80150130[]; +extern f32 gCameraZoom[]; extern u16 isCrossingTriggeredByIndex[]; extern Lights1 D_800DC610[]; @@ -188,8 +188,8 @@ extern Gfx D_0D001BD8[]; extern Gfx D_0D001C20[]; extern Gfx D_0D001C88[]; extern Gfx D_0D002EE8[]; -extern Gfx D_0D002F80[]; -extern Gfx D_0D003008[]; +extern Gfx common_model_fake_itembox[]; +extern Gfx itemBoxQuestionMarkModel[]; extern Gfx D_0D003090[]; extern Gfx D_0D0030F8[]; extern Gfx D_0D003128[]; @@ -197,8 +197,8 @@ extern Gfx D_0D003158[]; extern Gfx D_0D003188[]; extern Gfx D_0D0031B8[]; extern Gfx D_0D0031E8[]; -extern Gfx D_0D004B48[]; -extern Gfx D_0D004BD8[]; +extern Gfx common_model_banana[]; +extern Gfx common_model_flat_banana[]; extern u8 D_0F04CBE0[]; extern u8 D_0F04CE30[]; diff --git a/src/racing/actors_extended.c b/src/racing/actors_extended.c index ea768ce78..ba2d68939 100644 --- a/src/racing/actors_extended.c +++ b/src/racing/actors_extended.c @@ -213,7 +213,7 @@ s32 func_802B09C0(s16 bananaId) { return 0; } -void update_obj_banana_bunch(struct BananaBunchParent *banana_bunch) { +void update_actor_banana_bunch(struct BananaBunchParent *banana_bunch) { UNUSED s32 pad[2]; Player *owner; struct Controller *controller; @@ -329,7 +329,7 @@ s32 func_802B0E14(s16 arg0) { return 0; } -void update_obj_triple_shell(TripleShellParent *parent, s16 shellType) { +void update_actor_triple_shell(TripleShellParent *parent, s16 shellType) { UNUSED s32 pad[2]; s16 playerId; UNUSED s32 pad2; @@ -665,7 +665,7 @@ void func_802B1FFC(Player *player) { gActorList[func_802B1E48(player)].type = ACTOR_BLUE_SPINY_SHELL; } -void update_obj_banana(struct BananaActor *banana) { +void update_actor_banana(struct BananaActor *banana) { UNUSED f32 pad; Player *player; struct BananaActor *elderBanana; @@ -1103,7 +1103,7 @@ void func_802B30EC(void) { } } -void update_obj_green_shell(struct ShellActor *shell) { +void update_actor_green_shell(struct ShellActor *shell) { Player *player; UNUSED f32 pad9; UNUSED f32 padA; @@ -1469,7 +1469,7 @@ void func_802B4104(struct ShellActor *shell) { } } -void update_obj_red_blue_shell(struct ShellActor *shell) { +void update_actor_red_blue_shell(struct ShellActor *shell) { UNUSED f32 pad9; Player *player; f32 temp_f0; diff --git a/src/racing/actors_extended.h b/src/racing/actors_extended.h index 569639bff..0cd5d6671 100644 --- a/src/racing/actors_extended.h +++ b/src/racing/actors_extended.h @@ -13,28 +13,28 @@ void func_802B0570(struct BananaActor*); void func_802B0648(struct BananaBunchParent*); void func_802B0788(s16, struct BananaBunchParent*, Player*); s32 func_802B09C0(s16); -void update_obj_banana_bunch(struct BananaBunchParent*); +void update_actor_banana_bunch(struct BananaBunchParent*); s32 func_802B0E14(s16); -void update_obj_triple_shell(TripleShellParent*, s16); +void update_actor_triple_shell(TripleShellParent*, s16); s32 func_802B17F4(Player*); s32 func_802B18E4(Player*, s16); s32 func_802B19EC(TripleShellParent*, Player*, s16, u16); s32 func_802B1C9C(Player*); s32 func_802B1E48(Player*); void func_802B1FFC(Player*); -void update_obj_banana(struct BananaActor*); +void update_actor_banana(struct BananaActor*); void func_802B2914(struct BananaBunchParent*, Player*, s16); s32 func_802B2C40(Player*); s32 func_802B2D70(Player*); void func_802B2EBC(Player*); void func_802B2FA0(Player*); void func_802B30EC(void); -void update_obj_green_shell(struct ShellActor*); +void update_actor_green_shell(struct ShellActor*); void func_802B3B44(struct ShellActor*); void func_802B3E7C(struct ShellActor*, Player*); s16 func_802B3FD0(Player*, struct ShellActor*); void func_802B4104(struct ShellActor*); -void update_obj_red_blue_shell(struct ShellActor*); +void update_actor_red_blue_shell(struct ShellActor*); void func_802B4E30(struct Actor*); // audio/external.c diff --git a/src/racing/math_util.c b/src/racing/math_util.c index ec1f1da6b..8da704551 100644 --- a/src/racing/math_util.c +++ b/src/racing/math_util.c @@ -39,7 +39,8 @@ UNUSED void func_802B4FF0() { } -s32 func_802B4FF8(Mat4 arg0, s32 arg1) { +// set the position, rotation and mode of where to render the next object and check number of object already render +s32 render_set_position(Mat4 arg0, s32 arg1) { if (gMatrixObjectCount >= MTX_OBJECT_POOL_SIZE) { return 0; } @@ -72,7 +73,7 @@ f32 func_802B51E8(Vec3f arg0, Vec3f arg1) { return (temp_f2 * temp_f2) + (temp_f12 * temp_f12) + temp_f14 + temp_f14; } //u32 atan2s(f32, f32); // might be s32 -u32 func_802B5224(Vec3f arg0, Vec3f arg1) { +u32 get_angle_between_points(Vec3f arg0, Vec3f arg1) { f32 temp_v1; f32 temp_v2; temp_v1 = arg1[0] - arg0[0]; @@ -1030,7 +1031,7 @@ f32 coss(u16 arg0) { return gCosineTable[arg0 >> 4]; } -s32 func_802B8058(u16 arg0, u16 arg1, u16 arg2) { +s32 is_visible_between_angle(u16 arg0, u16 arg1, u16 arg2) { if (arg1 < arg0) { if (arg1 >= arg2) { return 0; @@ -1046,65 +1047,67 @@ s32 func_802B8058(u16 arg0, u16 arg1, u16 arg2) { return 1; } -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -f32 func_802B80D0(Vec3f arg0, Vec3f arg1, u16 arg2, f32 arg3, f32 arg4, f32 arg5) { - u16 temp_a2; +/** + * Returns distance or -1.0f if exceeds render distance. +*/ +f32 is_within_render_distance(Vec3f cameraPos, Vec3f objectPos, u16 orientationY, f32 minDistance, f32 fov, f32 maxDistance) { + u16 angleObject; UNUSED u16 pad; u16 temp_v0; - f32 temp_f0; - f32 temp_f20; - f32 temp_f2; - s32 temp_t6; - s32 temp_t7; + f32 distanceX; + f32 distance; + f32 distanceY; + s32 plus_fov_angle; + s32 minus_fov_angle; u16 temp; UNUSED s32 pad2[3]; - u16 temp_v1 = ((u16) arg4 * 0xB6); + u16 extended_fov = ((u16) fov * 0xB6); - temp_f0 = arg1[0] - arg0[0]; - temp_f0 = temp_f0 * temp_f0; - if (arg5 < temp_f0) { + distanceX = objectPos[0] - cameraPos[0]; + distanceX = distanceX * distanceX; + if (maxDistance < distanceX) { return -1.0f; } - temp_f2 = arg1[2] - arg0[2]; - temp_f2 = temp_f2 * temp_f2; - if (arg5 < temp_f2) { + distanceY = objectPos[2] - cameraPos[2]; + distanceY = distanceY * distanceY; + if (maxDistance < distanceY) { return -1.0f; } - temp_f20 = temp_f0 + temp_f2; - if (temp_f20 < arg3) { - return temp_f20; + distance = distanceX + distanceY; + if (distance < minDistance) { + return distance; } - if (temp_f20 > arg5) { + if (distance > maxDistance) { return -1.0f; } - temp_a2 = func_802B5224(arg0, arg1); - temp_t7 = (arg2 - temp_v1); - temp_t6 = (arg2 + temp_v1); + angleObject = get_angle_between_points(cameraPos, objectPos); + minus_fov_angle = (orientationY - extended_fov); + plus_fov_angle = (orientationY + extended_fov); - if (arg3 == 0.0f) { - if (func_802B8058((arg2 + temp_v1), (arg2 - temp_v1), temp_a2) == 1) { - return temp_f20; + if (minDistance == 0.0f) { + if (is_visible_between_angle((orientationY + extended_fov), (orientationY - extended_fov), angleObject) == 1) { + return distance; } return -1.0f; } - if (func_802B8058((u16) temp_t6, (u16) temp_t7, temp_a2) == 1) { - return temp_f20; + if (is_visible_between_angle((u16) plus_fov_angle, (u16) minus_fov_angle, angleObject) == 1) { + return distance; } - temp_v0 = func_802B7CA8(arg3 / temp_f20); - temp = temp_a2 + temp_v0; + temp_v0 = func_802B7CA8(minDistance / distance); + temp = angleObject + temp_v0; - if (func_802B8058(temp_t6, temp_t7, temp) == 1) { - return temp_f20; + if (is_visible_between_angle(plus_fov_angle, minus_fov_angle, temp) == 1) { + return distance; } - temp = temp_a2 - temp_v0; - if (func_802B8058(temp_t6, temp_t7, temp) == 1) { - return temp_f20; + temp = angleObject - temp_v0; + if (is_visible_between_angle(plus_fov_angle, minus_fov_angle, temp) == 1) { + return distance; } return -1.0f; } diff --git a/src/racing/math_util.h b/src/racing/math_util.h index e388c0e0f..67f4dfcfe 100644 --- a/src/racing/math_util.h +++ b/src/racing/math_util.h @@ -19,9 +19,9 @@ double fabs(double x); void func_802B6A84(Mat3, s16, f32, f32, f32); void func_802B4FF0(void); void func_802B5794(Mat4, Vec3f, Vec3f); -s32 func_802B4FF8(Mat4, s32); +s32 render_set_position(Mat4, s32); f32 func_802B51E8(Vec3f, Vec3f); -u32 func_802B5224(Vec3f, Vec3f); +u32 get_angle_between_points(Vec3f, Vec3f); u32 func_802B5258(Vec3f, Vec3s); void vec3f_set(Vec3f, f32, f32, f32); void vec3s_set(Vec3s, s16, s16, s16); @@ -72,8 +72,8 @@ s16 func_802B7F34(f32, f32, f32, f32); void func_802B7F7C(Vec3f, Vec3f, Vec3s); f32 sins(u16); f32 coss(u16); -s32 func_802B8058(u16, u16, u16); -f32 func_802B80D0(Vec3f, Vec3f, u16, f32, f32, f32); +s32 is_visible_between_angle(u16, u16, u16); +f32 is_within_render_distance(Vec3f, Vec3f, u16, f32, f32, f32); void func_802B8414(uintptr_t, Mat4, s16, s16, s32); extern u16 gRandomSeed16; diff --git a/src/racing/render_courses.c b/src/racing/render_courses.c index 666468bbe..929d20b1e 100644 --- a/src/racing/render_courses.c +++ b/src/racing/render_courses.c @@ -228,7 +228,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { break; } mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); switch (gCurrentCourseId) { case COURSE_BOWSER_CASTLE: if (gActiveScreenMode != 0) { return; } @@ -277,7 +277,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { vector[1] = D_8015F8E4; vector[2] = 0.0f; mtxf_translate(matrix, vector); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2); gDPSetBlendMask(gDisplayListHead++, 0xFF); @@ -300,7 +300,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); load_surface_map((uintptr_t) &D_090001D0, arg0); gDPSetAlphaCompare(gDisplayListHead++, G_AC_NONE); @@ -315,7 +315,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { case COURSE_RAINBOW_ROAD: gDPPipeSync(gDisplayListHead++); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); load_surface_map((uintptr_t) &d_course_rainbow_road_dl_list, arg0); gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK); @@ -333,7 +333,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIDECALA, G_CC_MODULATEIDECALA); @@ -354,7 +354,7 @@ void func_8029122C(struct UnkStruct_800DC5EC *arg0, s32 arg1) { gDPSetTexturePersp(gDisplayListHead++, G_TP_PERSP); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA, G_CC_MODULATEIA); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_XLU_INTER, G_RM_NOOP2); @@ -714,7 +714,7 @@ void render_banshee_boardwalk(struct UnkStruct_800DC5EC *arg0) { spA8[1] = -82.0f; spA8[2] = camera->pos[2]; mtxf_translate(spCC, spA8); - func_802B4FF8(spCC, 0); + render_set_position(spCC, 0); gSPDisplayList(gDisplayListHead++, d_course_banshee_boardwalk_dl_B278); gDPPipeSync(gDisplayListHead++); diff --git a/src/racing/skybox_and_splitscreen.c b/src/racing/skybox_and_splitscreen.c index 320e6ac63..8bf0e7d35 100644 --- a/src/racing/skybox_and_splitscreen.c +++ b/src/racing/skybox_and_splitscreen.c @@ -567,22 +567,22 @@ void func_802A4D18(void) { void func_802A4EF4(void) { switch(gActiveScreenMode) { case SCREEN_MODE_1P: - func_8001F394(gPlayerOne, &D_80150130[0]); + func_8001F394(gPlayerOne, &gCameraZoom[0]); break; case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: - func_8001F394(gPlayerOne, &D_80150130[0]); - func_8001F394(gPlayerTwo, &D_80150130[1]); + func_8001F394(gPlayerOne, &gCameraZoom[0]); + func_8001F394(gPlayerTwo, &gCameraZoom[1]); break; case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: - func_8001F394(gPlayerOne, &D_80150130[0]); - func_8001F394(gPlayerTwo, &D_80150130[1]); + func_8001F394(gPlayerOne, &gCameraZoom[0]); + func_8001F394(gPlayerTwo, &gCameraZoom[1]); break; case SCREEN_MODE_3P_4P_SPLITSCREEN: - func_8001F394(gPlayerOne, &D_80150130[0]); - func_8001F394(gPlayerTwo, &D_80150130[1]); - func_8001F394(gPlayerThree, &D_80150130[2]); - func_8001F394(gPlayerFour, &D_80150130[3]); + func_8001F394(gPlayerOne, &gCameraZoom[0]); + func_8001F394(gPlayerTwo, &gCameraZoom[1]); + func_8001F394(gPlayerThree, &gCameraZoom[2]); + func_8001F394(gPlayerFour, &gCameraZoom[3]); break; } } @@ -598,9 +598,9 @@ void func_802A5004(void) { func_802A39E0(D_800DC5F0); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[1]); + func_802A4A0C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]); func_80057FC4(2); - func_802A487C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[1]); + func_802A487C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]); func_80093A30(2); } } @@ -615,9 +615,9 @@ void func_802A50EC(void) { func_802A39E0(D_800DC5EC); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[0]); + func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]); func_80057FC4(1); - func_802A487C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[0]); + func_802A487C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]); func_80093A30(1); } } @@ -632,9 +632,9 @@ void func_802A51D4(void) { gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[0]); + func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]); func_80057FC4(3); - func_802A487C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[0]); + func_802A487C((Vtx *) D_802B8890, D_800DC5EC, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[0]); func_80093A30(3); } } @@ -649,9 +649,9 @@ void func_802A52BC(void) { gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[1]); + func_802A4A0C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]); func_80057FC4(4); - func_802A487C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[1]); + func_802A487C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]); func_80093A30(4); } } @@ -668,11 +668,11 @@ void func_802A53A4(void) { init_z_buffer(); select_framebuffer(); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &D_80150130[0]); + func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]); if (gGamestate != CREDITS_SEQUENCE) { func_80057FC4(0); } - func_802A487C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &D_80150130[0]); + func_802A487C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]); func_80093A30(0); } } @@ -687,9 +687,9 @@ void func_802A54A8(void) { gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &D_80150130[0]); + func_802A4A0C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]); func_80057FC4(8); - func_802A487C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &D_80150130[0]); + func_802A487C((Vtx *) D_802B8890, D_800DC5EC, 0x140, 0xF0, &gCameraZoom[0]); func_80093A30(8); } } @@ -704,9 +704,9 @@ void func_802A5590(void) { gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[1]); + func_802A4A0C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]); func_80057FC4(9); - func_802A487C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[1]); + func_802A487C((Vtx *) D_802B8910, D_800DC5F0, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[1]); func_80093A30(9); } } @@ -721,9 +721,9 @@ void func_802A5678(void) { gSPSetGeometryMode(gDisplayListHead++, G_SHADE | G_SHADING_SMOOTH | G_CLIPPING); if (D_800DC5B4 != 0) { - func_802A4A0C((Vtx *) D_802B8990, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[2]); + func_802A4A0C((Vtx *) D_802B8990, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[2]); func_80057FC4(10); - func_802A487C((Vtx *) D_802B8990, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[2]); + func_802A487C((Vtx *) D_802B8990, D_800DC5F4, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[2]); func_80093A30(10); } } @@ -757,9 +757,9 @@ void func_802A5760(void) { func_802A39E0(D_800DC5F8); if (D_800DC5B4 != 0) { - func_802A4A0C(D_802B8A10, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[3]); + func_802A4A0C(D_802B8A10, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[3]); func_80057FC4(11); - func_802A487C(D_802B8A10, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &D_80150130[3]); + func_802A487C(D_802B8A10, D_800DC5F8, SCREEN_WIDTH, SCREEN_HEIGHT, &gCameraZoom[3]); func_80093A30(11); } } @@ -778,7 +778,7 @@ void func_802A59A4(void) { gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_LIGHTING | G_SHADING_SMOOTH); gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_OPA_SURF, G_RM_AA_ZB_OPA_SURF2); - guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, D_80150130[0], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); @@ -788,7 +788,7 @@ void func_802A59A4(void) { if (D_800DC5C8 == 0) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -796,9 +796,9 @@ void func_802A59A4(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5EC); + render_course_actors(D_800DC5EC); func_80058090(0); func_800212B4(); func_8029122C(D_800DC5EC, 0); @@ -826,7 +826,7 @@ void func_802A5CB4(void) { func_802A3730(D_800DC5EC); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, D_80150130[0], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[0], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); @@ -835,7 +835,7 @@ void func_802A5CB4(void) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -845,9 +845,9 @@ void func_802A5CB4(void) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5EC); + render_course_actors(D_800DC5EC); func_80058090(1); func_800212B4(); func_8029122C(D_800DC5EC, 0); @@ -876,7 +876,7 @@ void func_802A5FAC(void) { func_802A3730(D_800DC5F0); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[1], &perspNorm, D_80150130[1], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[1], &perspNorm, gCameraZoom[1], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[1], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); @@ -884,7 +884,7 @@ void func_802A5FAC(void) { if (D_800DC5C8 == 0) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -892,9 +892,9 @@ void func_802A5FAC(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5F0); + render_course_actors(D_800DC5F0); func_80058090(2); func_800215DC(); func_8029122C(D_800DC5F0, 1); @@ -924,7 +924,7 @@ void func_802A62A4(void) { func_802A3730(D_800DC5EC); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, D_80150130[0], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[0], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); @@ -933,7 +933,7 @@ void func_802A62A4(void) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -941,9 +941,9 @@ void func_802A62A4(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5EC); + render_course_actors(D_800DC5EC); func_80058090(3); func_800212B4(); func_8029122C(D_800DC5EC, 0); @@ -974,7 +974,7 @@ void func_802A65B8(void) { func_802A3730(D_800DC5F0); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[1], &perspNorm, D_80150130[1], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[1], &perspNorm, gCameraZoom[1], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[1], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); @@ -982,7 +982,7 @@ void func_802A65B8(void) { if (D_800DC5C8 == 0) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -990,9 +990,9 @@ void func_802A65B8(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5F0); + render_course_actors(D_800DC5F0); func_80058090(4); func_800215DC(); func_8029122C(D_800DC5F0, 1); @@ -1021,7 +1021,7 @@ void func_802A68CC(void) { func_802A3730(D_800DC5EC); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, D_80150130[0], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[0], &perspNorm, gCameraZoom[0], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[0], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); @@ -1029,7 +1029,7 @@ void func_802A68CC(void) { if (D_800DC5C8 == 0) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -1037,9 +1037,9 @@ void func_802A68CC(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[0]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5EC); + render_course_actors(D_800DC5EC); func_80058090(8); func_800212B4(); func_8029122C(D_800DC5EC, 0); @@ -1068,7 +1068,7 @@ void func_802A6BB0(void) { func_802A3730(D_800DC5F0); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[1], &perspNorm, D_80150130[1], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[1], &perspNorm, gCameraZoom[1], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); @@ -1076,7 +1076,7 @@ void func_802A6BB0(void) { if (D_800DC5C8 == 0) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -1084,9 +1084,9 @@ void func_802A6BB0(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[1]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5F0); + render_course_actors(D_800DC5F0); func_80058090(9); func_800215DC(); func_8029122C(D_800DC5F0, 1); @@ -1115,7 +1115,7 @@ void func_802A6E94(void) { func_802A3730(D_800DC5F4); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[2], &perspNorm, D_80150130[2], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[2], &perspNorm, gCameraZoom[2], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[2], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); @@ -1123,7 +1123,7 @@ void func_802A6E94(void) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[2]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[2]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -1131,9 +1131,9 @@ void func_802A6E94(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[2]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5F4); + render_course_actors(D_800DC5F4); func_80058090(10); func_8002186C(); func_8029122C(D_800DC5F4, 2); @@ -1171,14 +1171,14 @@ void func_802A7178(void) { func_802A3730(D_800DC5F8); gSPSetGeometryMode(gDisplayListHead++, G_ZBUFFER | G_SHADE | G_CULL_BACK | G_SHADING_SMOOTH); - guPerspective(&gGfxPool->mtxPersp[3], &perspNorm, D_80150130[3], D_80150148, D_80150150, D_8015014C, 1.0f); + guPerspective(&gGfxPool->mtxPersp[3], &perspNorm, gCameraZoom[3], D_80150148, D_80150150, D_8015014C, 1.0f); gSPPerspNormalize(gDisplayListHead++, perspNorm); gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxPersp[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION); guLookAt(&gGfxPool->mtxLookAt[3], camera->pos[0], camera->pos[1], camera->pos[2], camera->lookAt[0], camera->lookAt[1], camera->lookAt[2], camera->up[0], camera->up[1], camera->up[2]); if (D_800DC5C8 == 0) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[3]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } else { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[3]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); } @@ -1186,9 +1186,9 @@ void func_802A7178(void) { if (D_800DC5C8 == 1) { gSPMatrix(gDisplayListHead++, VIRTUAL_TO_PHYSICAL(&gGfxPool->mtxLookAt[3]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION); mtxf_identity(matrix); - func_802B4FF8(matrix, 0); + render_set_position(matrix, 0); } - func_802A3008(D_800DC5F8); + render_course_actors(D_800DC5F8); func_80058090(11); func_800219BC(); func_8029122C(D_800DC5F8, 3); diff --git a/src/racing/skybox_and_splitscreen.h b/src/racing/skybox_and_splitscreen.h index d7d6d1be8..d98ac7549 100644 --- a/src/racing/skybox_and_splitscreen.h +++ b/src/racing/skybox_and_splitscreen.h @@ -73,7 +73,7 @@ extern s32 D_800DC5D4; extern s32 D_800DC5D8; extern u16 D_800DC5BC; extern struct GfxPool *gGfxPool; -extern f32 D_80150130[]; +extern f32 gCameraZoom[]; extern u16 D_800DC5B4; extern f32 D_80150148; extern f32 D_8015014C;