summaryrefslogtreecommitdiff
path: root/src/code_800AF9B0.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code_800AF9B0.c')
-rw-r--r--src/code_800AF9B0.c37
1 files changed, 11 insertions, 26 deletions
diff --git a/src/code_800AF9B0.c b/src/code_800AF9B0.c
index f7b64c056..a719a7adb 100644
--- a/src/code_800AF9B0.c
+++ b/src/code_800AF9B0.c
@@ -196,11 +196,12 @@ void func_800AFF58(Vtx *arg0) {
}
#ifdef NON_MATCHING
+// Credit to SpazzyLemon for the updated and better attempt
void func_800B0004(void) {
+ Vtx* vtxs;
+ s32 res1, res2;
+ UNUSED u32 pad[0x5];
s32 i, j;
- Vtx *spBC;
- UNUSED u32 pad[0x10];
- u32 sp64; // offset?
gSPLight(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_800E8688), LIGHT_1);
gSPLight(gDisplayListHead++, VIRTUAL_TO_PHYSICAL2(&D_800E8680), LIGHT_2);
@@ -210,34 +211,18 @@ void func_800B0004(void) {
gSPClearGeometryMode(gDisplayListHead++, G_CULL_BACK);
gSPSetGeometryMode(gDisplayListHead++, G_LIGHTING);
- spBC = D_8018EDB4 % 2 ? (void *)D_8018EDB8 : (void *)D_8018EDBC;
-
+ vtxs = D_8018EDB4 % 2 ? D_8018EDB8 : D_8018EDBC;
D_8018EDB2 = 0x9C0;
-
- for (i = 0, sp64 = 0; i < 10; i++, sp64 += 0x30) {
- // L800B018C
+ for (i = 0; i < 10; i++) {
for (j = 0; j < 12; j++) {
- f32 res1, res2;
- // L800B01A0
- res1 = sins((u16)(D_8018EDB0 - (j * D_8018EDB2))) * 84.0f * (f32)j * 0.18f;
- res2 = sins((u16)(D_8018EDB0 - ((j+1) * D_8018EDB2))) * 84.0f * (f32)(j+1) * 0.18f;
- func_800AF9E4(
- spBC + j + sp64,
- j,
- i,
- 84,
- res1,
- res2,
- j * 84,
- 84
- );
+ res1 = sins(D_8018EDB0 - (j * D_8018EDB2)) * 84.0f * j * 0.18f;
+ res2 = sins(D_8018EDB0 - ((j + 1) * D_8018EDB2)) * 84.0f * (j + 1) * 0.18f;
+ func_800AF9E4(&(&vtxs[j * 4])[i * 48], j, i, 84, res1, res2, (j * 84), 84);
}
}
- // will probably have to retype this function
- func_800AFF58((void *)spBC);
+ func_800AFF58(vtxs);
D_8018EDB0 += D_8018EDB2;
- D_8018EDB4 += 1;
-
+ ++D_8018EDB4;
gSPSetGeometryMode(gDisplayListHead++, G_CULL_BACK);
gSPNumLights(gDisplayListHead++, NUMLIGHTS_1);
gSPClearGeometryMode(gDisplayListHead++, G_LIGHTING);