@@ -177,42 +177,61 @@ void func_8005CB10(Gfx **gdl, UnkVidStruct4 *param2) {
177
177
static s32 D_80092FFC = 1 ;
178
178
static s32 D_80093000 = 0 ;
179
179
#pragma GLOBAL_ASM("asm/nonmatchings/video/func_8005CC74.s")
180
-
180
+ #if 0
181
181
#pragma GLOBAL_ASM("asm/nonmatchings/video/func_8005CD80.s")
182
+ #else
183
+ void func_8005CD80 () {
184
+ s32 i ;
185
+ s32 k ;
186
+ UnkVidStruct_0x18 * ptr ;
182
187
183
- #if 1
188
+ for (i = 0 ; i < UNKNOWN_VIDEO_STRUCTS_COUNT ; i ++ ) {
189
+ ptr = & gUnknownVideoStructs [i ].unk0x18 [0 ];
190
+
191
+ if (gUnknownVideoStructs [i ].viMode != NULL ) {
192
+ gUnknownVideoStructs [i ].unk0x88 -= 5 ;
193
+
194
+ if (gUnknownVideoStructs [i ].unk0x88 < 0 ) {
195
+ gUnknownVideoStructs [i ].unk0x88 = 0 ;
196
+ }
197
+
198
+ for (k = 0 ; k < 4 ; k ++ ) {
199
+ (ptr ++ )-> unkf = gUnknownVideoStructs [i ].unk0x88 ;
200
+ }
201
+ }
202
+ }
203
+ }
204
+ #endif
205
+
206
+ #if 0
184
207
#pragma GLOBAL_ASM("asm/nonmatchings/video/func_8005CDFC.s")
185
208
#else
186
- // Functionally equivalent, mainly regalloc, see TODO
187
209
void func_8005CDFC (int _ ) {
188
210
float var1 ;
189
211
float var2 ;
190
- s16 * var3 ;
191
212
s32 i ;
213
+ s32 k ;
214
+ UnkVidStruct_0x18 * ptr ;
215
+
216
+ var1 = 0 ;
217
+ var2 = 0 ;
192
218
193
219
for (i = 0 ; i < UNKNOWN_VIDEO_STRUCTS_COUNT ; i ++ ) {
194
- if (gUnknownVideoStructs [i ].viMode == NULL ) {
195
- continue ;
220
+ if (gUnknownVideoStructs [i ].viMode != NULL ) {
221
+ ptr = & gUnknownVideoStructs [i ].unk0x18 [0 ];
222
+
223
+ var1 = gWorldX - gUnknownVideoStructs [i ].unk0x78 ;
224
+ var2 = gWorldZ - gUnknownVideoStructs [i ].unk0x7c ;
225
+
226
+ gUnknownVideoStructs [i ].unk0x78 += var1 ;
227
+ gUnknownVideoStructs [i ].unk0x7c += var2 ;
228
+
229
+ for (k = 0 ; k < 4 ; k ++ ) {
230
+ ptr -> x -= var1 ;
231
+ ptr -> z -= var2 ;
232
+ ptr ++ ;
233
+ }
196
234
}
197
-
198
- // TODO: The order of loads and stores here are slightly out of order
199
- var1 = gWorldX - gUnknownVideoStructs [i ].unk0x78 ;
200
- var2 = gWorldZ - gUnknownVideoStructs [i ].unk0x7c ;
201
-
202
- var3 = & gUnknownVideoStructs [i ].unk0x48 [0 ];
203
-
204
- gUnknownVideoStructs [i ].unk0x78 += var1 ;
205
- gUnknownVideoStructs [i ].unk0x7c += var2 ;
206
-
207
- gUnknownVideoStructs [i ].unk0x18 -= var1 ;
208
- gUnknownVideoStructs [i ].unk0x1c -= var2 ;
209
- gUnknownVideoStructs [i ].unk0x28 -= var1 ;
210
- gUnknownVideoStructs [i ].unk0x2c -= var2 ;
211
- gUnknownVideoStructs [i ].unk0x38 -= var1 ;
212
- gUnknownVideoStructs [i ].unk0x3c -= var2 ;
213
-
214
- var3 [2 ] = var3 [2 ] - var2 ;
215
- var3 [0 ] = var3 [0 ] - var1 ;
216
235
}
217
236
}
218
237
#endif
0 commit comments