Skip to content

Commit 6dae83f

Browse files
committed
Match 8 more node state-callbacks (Vec3+bit0-guard, RandNextScaled sibs, if/else branch)
- ov120/121/122 020cd9f8/cf818/d1638: state[0x2c]-=0x100; Vec3 copy state[0x28]->state[0x1c]; if(!((struct{u8 b:1;}*)(*state+0x17a))->b) return; func_ov107_020c9264(*state,6,0); advance (bit0 guard via a 1-bit bitfield -> ldrb;lsl#31;lsrs#31;popeq) - ov164/165 020d0de4/2c04: byte-identical siblings of ov163 (RandNext Scaled range, main-region callees only, NULL next) - ov240_020cf74c: Vec3-copy+VEC-scale sibling of ov239_cd830 (src 0x2c) - ov261/262 020d0bb0/47f0: if(*(int*)(*state+0x3a8)==0){state[0x1c7]=2; advance(NULL);return;} state[0x70]=func_ovNN_03ec/402c(state,(u8) (*state+0x3ac)); advance(&next) -- two-path if/else branch handler
1 parent efb35fc commit 6dae83f

16 files changed

Lines changed: 108 additions & 242 deletions

File tree

src/overlays/ov120/asm_stubs/calls/func_ov120_020cd9f8.c

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
struct v3 { int x, y, z; };
2+
struct bit0 { unsigned char b : 1; };
3+
extern void func_ov107_020c9264(int a, int b, int c);
4+
extern void func_0203c634(void *node, int idx, void *value);
5+
extern void func_ov120_020cda58(void);
6+
7+
void func_ov120_020cd9f8(int *node) {
8+
int *state = (int *)node[1];
9+
state[0xb] -= 0x100;
10+
*(struct v3 *)((char *)state + 0x1c) = *(struct v3 *)((char *)state + 0x28);
11+
if (!((struct bit0 *)(*state + 0x17a))->b) return;
12+
func_ov107_020c9264(*state, 6, 0);
13+
func_0203c634(node, *(signed char *)((char *)node + 0x20), func_ov120_020cda58);
14+
}

src/overlays/ov121/asm_stubs/calls/func_ov121_020cf818.c

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
struct v3 { int x, y, z; };
2+
struct bit0 { unsigned char b : 1; };
3+
extern void func_ov107_020c9264(int a, int b, int c);
4+
extern void func_0203c634(void *node, int idx, void *value);
5+
extern void func_ov121_020cf878(void);
6+
7+
void func_ov121_020cf818(int *node) {
8+
int *state = (int *)node[1];
9+
state[0xb] -= 0x100;
10+
*(struct v3 *)((char *)state + 0x1c) = *(struct v3 *)((char *)state + 0x28);
11+
if (!((struct bit0 *)(*state + 0x17a))->b) return;
12+
func_ov107_020c9264(*state, 6, 0);
13+
func_0203c634(node, *(signed char *)((char *)node + 0x20), func_ov121_020cf878);
14+
}

src/overlays/ov122/asm_stubs/calls/func_ov122_020d1638.c

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
struct v3 { int x, y, z; };
2+
struct bit0 { unsigned char b : 1; };
3+
extern void func_ov107_020c9264(int a, int b, int c);
4+
extern void func_0203c634(void *node, int idx, void *value);
5+
extern void func_ov122_020d1698(void);
6+
7+
void func_ov122_020d1638(int *node) {
8+
int *state = (int *)node[1];
9+
state[0xb] -= 0x100;
10+
*(struct v3 *)((char *)state + 0x1c) = *(struct v3 *)((char *)state + 0x28);
11+
if (!((struct bit0 *)(*state + 0x17a))->b) return;
12+
func_ov107_020c9264(*state, 6, 0);
13+
func_0203c634(node, *(signed char *)((char *)node + 0x20), func_ov122_020d1698);
14+
}

src/overlays/ov164/asm_stubs/calls/func_ov164_020d0de4.c

Lines changed: 0 additions & 30 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
extern int func_02023eb4(int max);
2+
extern void func_0203c634(void *node, int idx, void *value);
3+
4+
void func_ov164_020d0de4(int *node) {
5+
int *state = (int *)node[1];
6+
if (*(unsigned char *)state[0x16] != 0) return;
7+
int base = *(int *)(*state + 0x224);
8+
int d = *(int *)(*state + 0x228) - base;
9+
if (d < 0) d = -d;
10+
state[0xd] = base + func_02023eb4(d + 1);
11+
*(signed char *)(*state + 0x1c7) = 2;
12+
func_0203c634(node, *(signed char *)((char *)node + 0x20), 0);
13+
}

src/overlays/ov165/asm_stubs/calls/func_ov165_020d2c04.c

Lines changed: 0 additions & 30 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
extern int func_02023eb4(int max);
2+
extern void func_0203c634(void *node, int idx, void *value);
3+
4+
void func_ov165_020d2c04(int *node) {
5+
int *state = (int *)node[1];
6+
if (*(unsigned char *)state[0x16] != 0) return;
7+
int base = *(int *)(*state + 0x224);
8+
int d = *(int *)(*state + 0x228) - base;
9+
if (d < 0) d = -d;
10+
state[0xd] = base + func_02023eb4(d + 1);
11+
*(signed char *)(*state + 0x1c7) = 2;
12+
func_0203c634(node, *(signed char *)((char *)node + 0x20), 0);
13+
}

0 commit comments

Comments
 (0)