Skip to content

Commit aae031b

Browse files
committed
MAP1_S01: func_800CB8A0
1 parent 9e3c9d4 commit aae031b

8 files changed

Lines changed: 115 additions & 87 deletions

File tree

include/bodyprog/bodyprog.h

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -277,22 +277,20 @@ typedef struct
277277
u8 field_B;
278278
union
279279
{
280-
q3_12 field_0; // Angle.
280+
s32 field_0;
281281
struct
282282
{
283-
u8 field_0;
284-
u8 field_1;
283+
q3_12 field_0; // Angle.
284+
q3_12 field_2; // Angle.
285285
} s_0;
286-
} field_C;
287-
union
288-
{
289-
q3_12 field_0; // Angle.
290286
struct
291287
{
292288
u8 field_0;
293289
u8 field_1;
294-
} s_0;
295-
} field_E;
290+
u8 field_2;
291+
u8 field_3;
292+
} s_1;
293+
} field_C;
296294
union
297295
{
298296
u32 field_0;

include/maps/map1/map1_s01.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ extern q19_12 g_PianoCursorX;
5454
extern q19_12 g_PianoCursorY;
5555
extern s32 g_PianoKeyCounter;
5656
extern s32 D_800DD594;
57+
extern u16 D_800DEE58;
5758

5859
void Ai_Cat_Update(s_SubCharacter* chara, s_AnmHeader* anmHdr, GsCOORDINATE2* coords);
5960

@@ -102,4 +103,6 @@ void func_800D9EC4(void);
102103

103104
void func_800CB7F4(void);
104105

106+
void func_800CB8A0(s32 idx);
107+
105108
#endif

include/maps/shared/sharedFunc_800CB0A4_4_s03.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ void sharedFunc_800CB0A4_4_s03(VECTOR3* arg0, VECTOR3* arg1)
88
sharedData_800E1FF8_1_s02[idx].vx_0 = arg0->vx;
99
sharedData_800E1FF8_1_s02[idx].vy_8 = arg0->vy;
1010
sharedData_800E1FF8_1_s02[idx].vz_4 = arg0->vz;
11-
sharedData_800E1FF8_1_s02[idx].field_C.field_0 = ratan2(arg1->vx - arg0->vx, arg1->vz - arg0->vz);
12-
sharedData_800E1FF8_1_s02[idx].field_E.field_0 = ratan2(arg1->vy - arg0->vy, Math_Vector2MagCalc(arg1->vx - arg0->vx, arg1->vz - arg0->vz));
11+
sharedData_800E1FF8_1_s02[idx].field_C.s_0.field_0 = ratan2(arg1->vx - arg0->vx, arg1->vz - arg0->vz);
12+
sharedData_800E1FF8_1_s02[idx].field_C.s_0.field_2 = ratan2(arg1->vy - arg0->vy, Math_Vector2MagCalc(arg1->vx - arg0->vx, arg1->vz - arg0->vz));
1313

1414
do {} while (false); // @hack
1515

include/maps/shared/sharedFunc_800CE5D4_1_s03.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ void sharedFunc_800CE5D4_1_s03(VECTOR3* arg0, u16 arg1, u16 arg2, u32 arg3)
88
sharedData_800E1FF8_1_s02[idx].vx_0 = Q12_TO_Q8(arg0->vx);
99
sharedData_800E1FF8_1_s02[idx].vy_8 = Q12_TO_Q8(arg0->vy);
1010
sharedData_800E1FF8_1_s02[idx].vz_4 = Q12_TO_Q8(arg0->vz);
11-
sharedData_800E1FF8_1_s02[idx].field_C.field_0 = arg1 / 2;
12-
sharedData_800E1FF8_1_s02[idx].field_E.field_0 = Q12_TO_Q8(arg2);
11+
sharedData_800E1FF8_1_s02[idx].field_C.s_0.field_0 = arg1 / 2;
12+
sharedData_800E1FF8_1_s02[idx].field_C.s_0.field_2 = Q12_TO_Q8(arg2);
1313
sharedData_800E1FF8_1_s02[idx].field_B = arg3;
1414
}
1515
}

src/bodyprog/bodyprog_80055028.c

Lines changed: 67 additions & 67 deletions
Large diffs are not rendered by default.

src/maps/map1_s01/map1_s01.c

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,34 @@ INCLUDE_RODATA("asm/maps/map1_s01/nonmatchings/map1_s01", g_MapOverlayHeader);
1212

1313
INCLUDE_ASM("asm/maps/map1_s01/nonmatchings/map1_s01", func_800CB7F4);
1414

15-
INCLUDE_ASM("asm/maps/map1_s01/nonmatchings/map1_s01", func_800CB8A0);
15+
void func_800CB8A0(s32 idx)
16+
{
17+
s32 rngB;
18+
s32 rngZ;
19+
s16 rngX;
20+
21+
if (D_800DEE50.field_2 == 0)
22+
{
23+
D_800DD5B0[idx].field_A = 14;
24+
}
25+
if (D_800DEE50.field_0 == 0)
26+
{
27+
rngX = (Rng_Rand16() % D_800DEE50.field_A);
28+
rngZ = Rng_Rand16() & 0xFFF;
29+
D_800DD5B0[idx].vx_0 = (s32) (rngX * Math_Cos(rngZ)) >> 0xC;
30+
D_800DD5B0[idx].vz_4 = (s32) (rngX * Math_Sin(rngZ)) >> 0xC;
31+
}
32+
else
33+
{
34+
D_800DD5B0[idx].vx_0 = (Rng_Rand16() % (D_800DEE50.field_A * 2)) - D_800DEE50.field_A;
35+
D_800DD5B0[idx].vz_4 = (Rng_Rand16() % (D_800DEE50.field_A * 2)) - D_800DEE50.field_A;
36+
}
37+
38+
D_800DD5B0[idx].vy_8 = D_800DEE58;
39+
rngB = Rng_Rand16();
40+
D_800DD5B0[idx].field_C.field_0 = 0;
41+
D_800DD5B0[idx].field_B = rngB - (rngB/3)*3;
42+
}
1643

1744
INCLUDE_ASM("asm/maps/map1_s01/nonmatchings/map1_s01", func_800CBA38);
1845

src/maps/map1_s03/map1_s03.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,15 @@ void func_800CDCE0(s32 arg0, s32 arg1, s32 arg2) // 0x800CDCE0
8282

8383
if (arg2 == 0)
8484
{
85-
sharedData_800E1FF8_1_s02[arg0].field_C.field_0 = (Rng_Rand16() % D_800E3A40[arg1].field_10);
85+
sharedData_800E1FF8_1_s02[arg0].field_C.s_0.field_0 = (Rng_Rand16() % D_800E3A40[arg1].field_10);
8686
}
8787
else
8888
{
89-
sharedData_800E1FF8_1_s02[arg0].field_C.field_0 = sharedData_800E1FF8_1_s02[arg0].field_C.field_0 - D_800E3A40[arg1].field_10;
89+
sharedData_800E1FF8_1_s02[arg0].field_C.s_0.field_0 = sharedData_800E1FF8_1_s02[arg0].field_C.field_0 - D_800E3A40[arg1].field_10;
9090
}
9191

92-
sharedData_800E1FF8_1_s02[arg0].field_E.s_0.field_0 = Rng_Rand16() & 0x3;
93-
sharedData_800E1FF8_1_s02[arg0].field_E.s_0.field_1 = (Rng_Rand16() & 0x3F) + 0x60;
92+
sharedData_800E1FF8_1_s02[arg0].field_C.s_1.field_2 = Rng_Rand16() & 0x3;
93+
sharedData_800E1FF8_1_s02[arg0].field_C.s_1.field_3 = (Rng_Rand16() & 0x3F) + 0x60;
9494
sharedData_800E1FF8_1_s02[arg0].field_10.s_2.field_0 = arg1;
9595
}
9696

src/maps/map1_s05/map1_s05.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ void func_800CBE7C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) // 0x800CBE
2828
sharedData_800E1FF8_1_s02[i].vy_8 = (arg1 + (Rng_Rand16() & 63)) * 16;
2929
sharedData_800E1FF8_1_s02[i].vz_4 = ((arg2 + (Rng_Rand16() & 63)) - 32) * 16;
3030
sharedData_800E1FF8_1_s02[i].field_B = 0;
31-
sharedData_800E1FF8_1_s02[i].field_C.field_0 = 0;
32-
sharedData_800E1FF8_1_s02[i].field_E.field_0 = arg3;
31+
sharedData_800E1FF8_1_s02[i].field_C.s_0.field_0 = 0;
32+
sharedData_800E1FF8_1_s02[i].field_C.s_0.field_2 = arg3;
3333
sharedData_800E1FF8_1_s02[i].field_10.s_1.field_0 = arg4;
3434
sharedData_800E1FF8_1_s02[i].field_10.s_1.field_2 = (Rng_Rand16() & 31) + 16;
3535
sharedData_800E1FF8_1_s02[i].field_10.s_1.field_3 = Rng_Rand16() & 15;

0 commit comments

Comments
 (0)