forked from zeldaret/oot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions.h
2487 lines (2481 loc) · 107 KB
/
functions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#ifndef _FUNCTIONS_H_
#define _FUNCTIONS_H_
#include "z64.h"
float fabsf(float f);
#pragma intrinsic(fabsf)
float sqrtf(float f);
#pragma intrinsic(sqrtf)
double sqrt(double d);
#pragma intrinsic(sqrt)
void cleararena(void);
void bootproc(void);
void Main_ThreadEntry(void* arg0);
void Idle_ThreadEntry(void* a0);
void ViConfig_UpdateVi(u32 arg0);
void ViConfig_UpdateBlack();
s32 DmaMgr_CompareName(const char* name1, const char* name2);
s32 DmaMgr_DMARomToRam(u32 rom, u32 ram, u32 size);
s32 DmaMgr_DmaCallback0(OSPiHandle* pihandle, OSIoMesg* mb, s32 direction);
void DmaMgr_DmaCallback1(u32 ram, u32 rom, u32 size);
void DmaMgr_Error(DmaRequest* req, const char* file, const char* errorName, const char* errorDesc);
const char* DmaMgr_GetFileNameImpl(u32 vrom);
const char* DmaMgr_GetFileName(u32 vrom);
void DmaMgr_ProcessMsg(DmaRequest* req);
void DmaMgr_ThreadEntry(void* arg0);
s32 DmaMgr_SendRequestImpl(DmaRequest* req, u32 ram, u32 vrom, u32 size, u32 unk, OSMesgQueue* queue, OSMesg msg);
s32 DmaMgr_SendRequest0(u32 ram, u32 vrom, u32 size);
void DmaMgr_Start();
s32 DmaMgr_SendRequest2(DmaRequest* req, u32 ram, u32 vrom, u32 size, u32 unk5, OSMesgQueue* queue, OSMesg msg,
const char* file, s32 line);
s32 DmaMgr_SendRequest1(void* ram0, u32 vrom, u32 size, const char* file, s32 line);
void* Yaz0_FirstDMA();
void* Yaz0_NextDMA(void* curSrcPos);
void Yaz0_DecompressImpl(Yaz0Header* hdr, u8* dst);
void Yaz0_Decompress(u32 romStart, void* dst, u32 size);
void Locale_Init();
void Locale_ResetRegion();
u32 func_80001F48();
u32 func_80001F8C();
u32 Locale_IsRegionNative();
void __assert(const char* exp, const char* file, s32 line);
void isPrintfInit();
void osSyncPrintfUnused(const char* fmt, ...);
void osSyncPrintf(const char* fmt, ...);
void rmonPrintf(const char* fmt, ...);
u32 is_proutSyncPrintf(void* arg0, const char* str, s32 count);
void func_80002384(const char* exp, const char* file, u32 line);
OSPiHandle* osDriveRomInit();
void Yaz0_Old_DecompressImpl(Yaz0Header* hdr, u8* dst);
void StackCheck_Init(StackEntry* entry, void* stackTop, void* stackBottom, u32 initValue, s32 minSpace,
const char* name);
void StackCheck_Cleanup(StackEntry* entry);
StackStatus StackCheck_GetState(StackEntry* entry);
u32 StackCheck_CheckAll();
u32 StackCheck_Check(StackEntry* entry);
float LogUtils_CheckFloatRange(const char* exp, s32 arg1, const char* var1Name, float var1, const char* var2Name,
float var2, const char* var3Name, float var3);
s32 LogUtils_CheckIntRange(const char* exp, s32 arg1, const char* var1Name, s32 var1, const char* var2Name, s32 var2,
const char* var3Name, s32 var3);
void LogUtils_LogHexDump(void* ptr, s32 size0);
void LogUtils_LogPointer(s32 value, u32 max, void* ptr, const char* name, const char* file, s32 line);
void LogUtils_CheckBoundary(const char* name, s32 value, s32 unk, const char* file, s32 line);
void LogUtils_CheckNullPointer(const char* exp, void* ptr, const char* file, s32 line);
void LogUtils_CheckValidPointer(const char* exp, void* ptr0, const char* file, s32 line);
void LogUtils_LogThreadId(const char* name, s32 line);
void LogUtils_HungupThread(const char* name, s32 line);
void LogUtils_ResetHungup();
char* proutSprintf(char* dst, const char* fmt, size_t size);
s32 vsprintf(char* dst, const char* fmt, va_list args);
s32 sprintf(char* dst, const char* fmt, ...);
void __osPiCreateAccessQueue(void);
void __osPiGetAccess(void);
void __osPiRelAccess(void);
s32 osSendMesg(OSMesgQueue* mq, OSMesg mesg, s32 flag);
void osStopThread(OSThread* thread);
void osViExtendVStart(u32 arg0);
s32 osRecvMesg(OSMesgQueue* mq, OSMesg* msg, s32 flag);
void __createSpeedParam(void);
void __osInitialize_common(void);
void __osInitialize_autodetect();
// ? __ull_rshift(?);
// ? __ull_rem(?);
// ? __ull_div(?);
// ? __ll_lshift(?);
// ? __ll_rem(?);
// ? __ll_div(?);
// ? __ll_mul(?);
// ? __ull_divremi(?);
// ? __ll_mod(?);
// ? __ll_rshift(?);
void __osExceptionPreamble();
// ? __osException(?);
void __osEnqueueAndYield(OSThread**);
void __osEnqueueThread(OSThread**, OSThread*);
OSThread* __osPopThread(OSThread**);
// ? __osNop(?);
void __osDispatchThread();
void __osCleanupThread(void);
void __osDequeueThread(OSThread** queue, OSThread* thread);
void osDestroyThread(OSThread* thread);
void bzero(void* __s, u32 __n);
void osCreateThread(OSThread* thread, OSId id, void (*entry)(void*), void* arg, void* sp, OSPri pri);
void __osSetSR(u32);
u32 __osGetSR();
void osWritebackDCache(void* vaddr, s32 nbytes);
void* osViGetNextFramebuffer();
void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQ, OSMesg* cmdBuf, s32 cmdMsgCnt);
void __osDevMgrMain(void* arg);
s32 __osPiRawStartDma(s32 dir, u32 cart_addr, void* dram_addr, size_t size);
u32 osVirtualToPhysical(void* vaddr);
void osViBlack(u8 active);
s32 __osSiRawReadIo(void* a0, u32* a1);
OSId osGetThreadId(OSThread* thread);
OSIntMask osSetIntMask(OSIntMask);
void osViSetMode(OSViMode* mode);
u32 __osProbeTLB(void*);
u32 osGetMemSize(void);
void osSetEventMesg(OSEvent e, OSMesgQueue* mq, OSMesg msg);
s32 _Printf(char* (*pfn)(char*, const char*, size_t), char* arg, const char* fmt, va_list ap);
void osUnmapTLBAll(void);
s32 osEPiStartDma(OSPiHandle* handle, OSIoMesg* mb, s32 direction);
const u8* strchr(const u8* str, s32 ch);
size_t strlen(const u8* str);
void* memcpy(void* dst, const void* src, size_t size);
void osInvalICache(void* vaddr, s32 nbytes);
void osCreateMesgQueue(OSMesgQueue* mq, OSMesg* msg, s32 count);
void osInvalDCache(void* vaddr, s32 nbytes);
s32 __osSiDeviceBusy();
void osSetThreadPri(OSThread* thread, OSPri pri);
OSPri osGetThreadPri(OSThread* thread);
s32 __osEPiRawReadIo(OSPiHandle* handle, u32 devAddr, u32* data);
void osViSwapBuffer(void* vaddr);
s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dramAddr, size_t size);
u32 bcmp(void* __sl, void* __s2, u32 __n);
OSTime osGetTime(void);
void __osTimerServicesInit();
void __osTimerInterrupt();
void __osSetTimerIntr(OSTime tim);
OSTime __osInsertTimer(OSTimer* a0);
u32 osGetCount(void);
void __osSetGlobalIntMask(u32 mask);
void __osSetCompare(u32);
void* bcopy(void* __src, void* __dest, u32 __n);
void __osResetGlobalIntMask(u32 mask);
s32 __osDisableInt(void);
void __osRestoreInt(s32);
void __osViInit();
void __osViSwapContext();
OSMesgQueue* osPiGetCmdQueue();
s32 osEPiReadIo(OSPiHandle* handle, u32 devAddr, u32* data);
void osViSetSpecialFeatures(u32 func);
OSPiHandle* osCartRomInit();
void __osSetFpcCsr(u32);
u32 __osGetFpcCsr();
s32 osEPiWriteIo(OSPiHandle* handle, u32 devAddr, u32 data);
void osMapTLBRdb(void);
u32 __osGetCause();
s32 __osEPiRawWriteIo(OSPiHandle* handle, u32 devAddr, u32 data);
void osCreateViManager(OSPri pri);
void viMgrMain(void* vargs);
OSViContext* __osViGetCurrentContext();
void osStartThread(OSThread* thread);
void osViSetYScale(float scale);
void osViSetXScale(f32 value);
void __osSetHWIntrRoutine(s32 idx, OSMesgQueue* queue, OSMesg msg);
void __osGetHWIntrRoutine(s32 idx, OSMesgQueue** outQueue, OSMesg* outMsg);
void __osSetWatchLo(u32);
Actor* Item_DropCollectible(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params);
Actor* Item_DropCollectible2(GlobalContext* globalCtx, Vec3f* spawnPos, s16 params);
void Item_DropCollectibleRandom(GlobalContext* globalCtx, Actor* fromActor, Vec3f* spawnPos, s16 params);
// ? func_8001FDF0(?);
// ? func_80020184(?);
// ? func_800208E0(?);
// ? func_80020A50(?);
// ? func_80020F60(?);
// ? func_80020FC0(?);
// ? func_800214D0(?);
// ? func_80021F00(?);
// ? func_800224F4(?);
// ? func_80022A10(?);
// ? func_8002389C(?);
void func_80024F0C(UNK_TYPE);
void func_80026230(GlobalContext* globalCtx, Color_RGBA8* color, s16 arg2, s16 arg3);
void func_80026400(GlobalContext*, Color_RGBA8*, u8, s16);
void func_80026608(GlobalContext*);
void func_80026690(GlobalContext* globalCtx, Color_RGBA8* color, s16 arg2, s16 arg3);
void func_80026860(GlobalContext*, Color_RGBA8*, u8, s16);
void func_80026A6C(GlobalContext* globalCtx);
GlobalContext* func_80026B00(void);
// ? func_80026B0C(?);
// ? func_80026C1C(?);
// ? func_80026C2C(?);
void Effect_Add(GlobalContext* globalCtx, s32* idp, s32 type, u8 arg3, u8 arg4, void* initParams);
// ? func_80026E74(?);
// ? func_80026F70(?);
// ? func_8002709C(?);
// ? func_800271A8(?);
// ? func_800272B0(?);
// ? func_80027410(?); Effect_SS_Clear
// ? func_800274E0(?); Effect_SS_Delete
void Effect_SS_ResetEntry(LoadedParticleEntry* particle);
// ? func_800275D0(?);
// ? func_80027798(?);
// ? func_80027A40(?);
// ? func_80027AE0(?);
// ? func_80027B98(?);
// ? func_80027BDC(?);
// ? func_80027E34(?);
// ? func_80027E84(?);
// ? func_800281E8(?);
// ? func_8002829C(?);
// ? func_80028304(?);
// ? func_8002857C(?);
// ? func_8002865C(?);
void func_800286CC(GlobalContext*, Vec3f*, Vec3f*, Vec3f*, s16, s16);
// ? func_8002873C(?);
// ? func_800287AC(?);
// ? func_80028894(?);
void func_80028B74(GlobalContext*, Vec3f*, UNK_PTR, UNK_PTR, Color_RGB8*, Color_RGB8*);
// ? func_80028BB0(?);
// ? func_80028EF4(?);
// ? func_80028FD8(?);
// ? func_80029060(?);
void Effect_SpawnFragment(GlobalContext* globalCtx, Vec3f* burstDepthY, Vec3f* burstDepthX, Vec3f* burstOrigin,
s16 gravityInfluence, s16 u0, s16 rotSpeed, s16 burstVel, u8 u1, s16 scale, u8 u2, s16 jitter,
s32 duration, s16 u3, s16 objNumber, u32 dList);
// ? func_800292DC(?);
// ? func_80029320(?);
// ? func_80029444(?);
// ? func_80029568(?);
// ? func_80029724(?);
// ? func_8002993C(?);
void func_800299AC(GlobalContext* globalCtx, Vec3f* v);
// ? func_80029C50(?);
void func_80029CA4(GlobalContext* globalCtx, s32 a, Vec3f* pos);
// ? func_80029F44(?);
// ? func_8002A32C(?);
// ? func_8002A3C4(?);
void func_8002A65C(GlobalContext* globalCtx, Actor* actor, Vec3f* pos, s16 arg3, s16 arg4);
void func_8002A6B8(GlobalContext* globalCtx, Vec3f* pos, Vec3f* arg2, Vec3f* arg3, u32 arg4, s32 arg5, u32 arg6,
u32 arg7, u32 arg8, u32 arg9, u32 arg10, u32 arg11, u32 arg12, u32 arg13, u32 arg14, u32 arg15);
// ? func_8002A894(?);
// ? func_8002A95C(?);
// ? func_8002A9F4(?);
// ? func_8002AAB0(?);
void Overlay_LoadGameState(GameStateOverlay* overlayEntry);
void Overlay_FreeGameState(GameStateOverlay* overlayEntry);
void ActorShape_Init(ActorShape* shape, f32 arg1, void* shadowDrawFunc, f32 arg3);
void ActorShadow_DrawFunc_Circle(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx);
void ActorShadow_DrawFunc_WhiteCircle(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx);
void ActorShadow_DrawFunc_Squiggly(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx);
void ActorShadow_DrawFunc_Teardrop(Actor* actor, LightMapper* lightMapper, GlobalContext* globalCtx);
void func_8002BDB0(Actor* actor, s32 arg1, s32 arg2, UNK_PTR arg3, s32 arg4, UNK_PTR arg5);
void func_8002C124(TargetContext* targetCtx, GlobalContext* globalCtx);
s32 Flags_GetSwitch(GlobalContext* globalCtx, s32 flag);
void Flags_SetSwitch(GlobalContext* globalCtx, s32 flag);
void Flags_UnsetSwitch(GlobalContext* globalCtx, s32 flag);
s32 Flags_GetUnknown(GlobalContext* globalCtx, s32 flag);
void Flags_SetUnknown(GlobalContext* globalCtx, s32 flag);
void Flags_UnsetUnknown(GlobalContext* globalCtx, s32 flag);
s32 Flags_GetTreasure(GlobalContext* globalCtx, s32 flag);
void Flags_SetTreasure(GlobalContext* globalCtx, s32 flag);
s32 Flags_GetClear(GlobalContext* globalCtx, s32 flag);
void Flags_SetClear(GlobalContext* globalCtx, s32 flag);
void Flags_UnsetClear(GlobalContext* globalCtx, s32 flag);
s32 Flags_GetTempClear(GlobalContext* globalCtx, s32 flag);
void Flags_SetTempClear(GlobalContext* globalCtx, s32 flag);
void Flags_UnsetTempClear(GlobalContext* globalCtx, s32 flag);
s32 Flags_GetCollectible(GlobalContext* globalCtx, s32 flag);
void Flags_SetCollectible(GlobalContext* globalCtx, s32 flag);
void TitleCard_InitBossName(GlobalContext* globalCtx, TitleCardContext* titleCtx, u32 texture, s16 arg3, s16 arg4,
u8 arg5, u8 arg6);
void TitleCard_InitPlaceName(GlobalContext* globalCtx, TitleCardContext* titleCtx, u32 texture, s32 arg3, s32 arg4,
s32 arg5, s32 arg6, s32 arg7);
s32 func_8002D53C(GlobalContext* globalCtx, TitleCardContext* titleCtx);
void Actor_Kill(Actor* actor);
void Actor_SetHeight(Actor* actor, f32 offset);
void Actor_SetScale(Actor* actor, f32 scale);
void Actor_SetObjectDependency(GlobalContext* globalCtx, Actor* actor);
void func_8002D7EC(Actor* actor);
void func_8002D868(Actor* actor);
void Actor_MoveForward(Actor* actor);
void func_8002D908(Actor* actor);
void func_8002D97C(Actor* actor);
void func_8002D9A4(Actor* actor, f32 arg1);
s16 func_8002DA78(Actor* actorA, Actor* actorB);
s16 func_8002DAC0(Actor* actor, Vec3f* arg1);
f32 func_8002DB48(Actor* actorA, Actor* actorB);
s16 func_8002DAE0(Actor* actorA, Actor* actorB);
s16 func_8002DB28(Actor* actor, Vec3f* arg1);
f32 func_8002DB8C(Actor* actorA, Actor* actorB);
f32 func_8002DBB0(Actor* actor, Vec3f* arg1);
void func_8002DBD0(Actor* actor, Vec3f* result, Vec3f* arg2);
f32 Actor_HeightDiff(Actor* actorA, Actor* actorB);
f32 Player_GetCameraYOffset(Player* player);
f32 func_8002DCE4(Player* player);
s32 func_8002DD6C(Player* player);
s32 func_8002DD78(Player* player);
s32 func_8002DDE4(GlobalContext* globalCtx);
s32 func_8002DDF4(GlobalContext* globalCtx);
void func_8002DE04(GlobalContext* globalCtx, Actor* actorA, Actor* actorB);
void func_8002DE74(GlobalContext* globalCtx, Player* player);
void func_8002DECC(GlobalContext* globalCtx, Player* player, Actor* actor);
s32 func_8002DEEC(Player* player);
void func_8002DF18(GlobalContext* globalCtx, Player* player);
u32 func_8002DF38(GlobalContext* globalCtx, Actor* actor, u8 newAction);
s32 func_8002DF54(GlobalContext* globalCtx, Actor* actor, u8 arg2);
void func_8002DF90(DynaPolyActor* dynaActor);
void func_8002DFA4(DynaPolyActor* dynaActor, f32 arg1, s16 arg2);
s32 func_8002DFC8(Actor* actor, s16 arg1, GlobalContext* globalCtx);
s32 func_8002E084(Actor* actor, s16 arg1);
s32 func_8002E12C(Actor* actor, f32 arg1, s16 arg2);
s32 func_8002E1A8(Actor* actorA, Actor* actorB, f32 arg2, s16 arg3);
void func_8002E4B4(GlobalContext* globalCtx, Actor* actor, f32 arg2, f32 arg3, f32 arg4, s32 arg5);
Hilite* func_8002EABC(Vec3f* object, Vec3f* eye, Vec3f* lightDir, GraphicsContext* gfxCtx);
Hilite* func_8002EB44(Vec3f* object, Vec3f* eye, Vec3f* lightDir, GraphicsContext* gfxCtx);
void func_8002EBCC(Actor* actor, GlobalContext* globalCtx, s32 flag);
void func_8002ED80(Actor* actor, GlobalContext* globalCtx, s32 flag);
PosRot* func_8002EEE4(PosRot* arg0, Actor* actor);
PosRot* func_8002EF14(PosRot* arg0, Actor* actor);
PosRot* func_8002EF44(PosRot* arg0, Actor* actor);
s32 func_8002F0C8(Actor* actor, Player* player, s32 arg2);
u32 func_8002F194(Actor* actor, GlobalContext* globalCtx);
s32 func_8002F1C4(Actor* actor, GlobalContext* globalCtx, f32 arg2, f32 arg3, u32 arg4);
s32 func_8002F298(Actor* actor, GlobalContext* globalCtx, f32 arg2, u32 arg3);
s32 func_8002F2CC(Actor* actor, GlobalContext* globalCtx, f32 arg2);
s32 func_8002F2F4(Actor* actor, GlobalContext* globalCtx);
u32 func_8002F334(Actor* actor, GlobalContext* globalCtx);
s8 func_8002F368(GlobalContext* globalCtx);
void func_8002F374(GlobalContext* globalCtx, Actor* actor, s16* arg2, s16* arg3);
u32 func_8002F410(Actor* actor, GlobalContext* globalCtx);
s32 func_8002F434(Actor* actor, GlobalContext* globalCtx, s32 getItemId, f32 xzRange, f32 yRange);
void func_8002F554(Actor* actor, GlobalContext* globalCtx, s32 getItemId);
void func_8002F580(Actor* actor, GlobalContext* globalCtx);
u32 func_8002F5A0(Actor* actor, GlobalContext* globalCtx);
void func_8002F5C4(Actor* actorA, Actor* actorB, GlobalContext* globalCtx);
void func_8002F5F0(Actor* actor, GlobalContext* globalCtx);
u32 func_8002F618(GlobalContext* globalCtx, Actor* actor);
u32 func_8002F63C(GlobalContext* globalCtx, Actor* actor, s32 arg2);
u32 func_8002F674(GlobalContext* globalCtx, Actor* actor);
void func_8002F698(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4, u32 arg5, u32 arg6);
void func_8002F6D4(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4, u32 arg5);
void func_8002F71C(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4);
void func_8002F758(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4, u32 arg5);
void func_8002F7A0(GlobalContext* globalCtx, u32 arg1, f32 arg2, s16 arg3, f32 arg4);
void func_8002F7DC(Actor* actor, u16 sfxId);
void Audio_PlayActorSound2(Actor* actor, u16 sfxId);
void func_8002F850(GlobalContext* globalCtx, Actor* actor);
void func_8002F8F0(Actor* actor, u16 sfxId);
void func_8002F91C(Actor* actor, u16 sfxId);
void func_8002F948(Actor* actor, u16 sfxId);
void func_8002F974(Actor* actor, u16 sfxId);
void func_8002F994(Actor* actor, s32 sfxId);
s32 func_8002F9EC(GlobalContext* globalCtx, Actor* actor, UNK_TYPE arg2, UNK_TYPE arg3, UNK_TYPE arg4);
void func_800304B0(GlobalContext* globalCtx);
void func_800304DC(GlobalContext* globalCtx, ActorContext* actorCtx, ActorEntry* actorEntry);
void Actor_UpdateAll(GlobalContext* globalCtx, ActorContext* actorCtx);
s32 func_800314D4(GlobalContext* globalCtx, Actor* actorB, Vec3f* arg2, f32 arg3);
void func_80031B14(GlobalContext* globalCtx, ActorContext* actorCtx);
void func_80031C3C(ActorContext* actorCtx, GlobalContext* globalCtx);
Actor* Actor_Spawn(ActorContext* actorCtx, GlobalContext* globalCtx, s16 actorId, f32 posX, f32 posY, f32 posZ,
s16 rotX, s16 rotY, s16 rotZ, s16 params);
Actor* Actor_SpawnAttached(ActorContext* actorCtx, Actor* attachedTo, GlobalContext* globalCtx, s16 actorId, f32 posX,
f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, s16 params);
void Actor_SpawnTransitionActors(GlobalContext* globalCtx, ActorContext* actorCtx);
Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, GlobalContext* globalCtx);
Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, GlobalContext* globalCtx);
Actor* func_80032AF0(GlobalContext* globalCtx, ActorContext* actorCtx, Actor** actorPtr, Player* player);
Actor* Actor_Find(ActorContext* actorCtx, s32 actorId, s32 actorType);
void func_80032C7C(GlobalContext* globalCtx, Actor* actor);
void func_80033260(GlobalContext* globalCtx, Actor* actor, Vec3f* arg2, f32 arg3, s32 arg4, f32 arg5, s16 arg6,
s16 arg7, u8 arg8);
void func_80033480(GlobalContext* globalCtx, Vec3f* arg1, f32 arg2, s32 arg3, s16 arg4, s16 arg5, u8 arg6);
Actor* func_80033640(GlobalContext* globalCtx, Collider* collider);
Actor* func_80033684(GlobalContext* globalCtx, Actor* explosiveActor);
void Actor_ChangeType(GlobalContext* globalCtx, ActorContext* actorCtx, Actor* actor, u8 actorType);
void Actor_SetTextWithPrefix(GlobalContext* globalCtx, Actor* actor, s16 textIdLower);
s16 func_800339B8(Actor* actor, GlobalContext* globalCtx, f32 arg2, s16 arg3);
s32 func_80033A84(GlobalContext* globalCtx, Actor* actor);
s32 func_80033AB8(GlobalContext* globalCtx, Actor* actor);
f32 func_80033AEC(Vec3f* arg0, Vec3f* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5);
void func_80033C30(Vec3f* arg0, Vec3f* arg1, u8 alpha, GlobalContext* globalCtx);
void func_80033DB8(GlobalContext* globalCtx, s16 arg1, s16 arg2);
void func_80033E1C(GlobalContext* globalCtx, s16 arg1, s16 arg2, s16 arg3);
void func_80033E88(Actor* actor, GlobalContext* globalCtx, s16 arg2, s16 arg3);
f32 Math_Rand_ZeroFloat(f32 f);
f32 Math_Rand_CenteredFloat(f32 f);
void func_80033F54(GlobalContext* globalCtx, s32 arg1, s32 arg2);
void func_8003424C(GlobalContext* globalCtx, Vec3f* arg1);
void func_8003426C(Actor* actor, s16 arg1, s16 arg2, s16 arg3, s16 arg4);
Hilite* func_800342EC(Vec3f* object, GlobalContext* globalCtx);
Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx);
s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 arg3, u16 (*unkFunc1)(GlobalContext*, Actor*),
s16 (*unkFunc2)(GlobalContext*, Actor*));
s16 func_800347E8(s16 arg0);
void func_80034A14(Actor* actor, struct_80034A14_arg1* arg1, s16 arg2, s16 arg3);
void func_80034BA0(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw2 overrideLimbDraw,
PostLimbDraw2 postLimbDraw, Actor* actor, s16 alpha);
void func_80034CC4(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw2 overrideLimbDraw,
PostLimbDraw2 postLimbDraw, Actor* actor, s16 alpha);
void func_80034EC0(SkelAnime* skelAnime, struct_80034EC0_Entry* arg1, s32 arg2);
void Actor_Noop(Actor* actor, GlobalContext* globalCtx);
void Gfx_DrawDListOpa(GlobalContext* globalCtx, u32 dlist);
void Gfx_DrawDListXlu(GlobalContext* globalCtx, u32 dlist);
Actor* Actor_FindNearby(GlobalContext* globalCtx, Actor* refActor, s16 actorId, u8 actorType, f32 range);
s32 func_800354B4(GlobalContext* globalCtx, Actor* actor, f32 range, s16 arg3, s16 arg4, s16 arg5);
void func_8003555C(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2, Vec3f* arg3);
void func_800355B8(GlobalContext* globalCtx, Vec3f* arg1);
u8 func_800355E4(GlobalContext* globalCtx, Collider* collider);
u8 Actor_ApplyDamage(Actor* actor);
void func_80035650(Actor* actor, ColliderBody* colBody, s32 freezeFlag);
void func_8003573C(Actor* actor, ColliderJntSph* colBody, s32 freezeFlag);
void func_80035844(Vec3f* arg0, Vec3f* arg1, s16* arg2, s32 arg3);
void func_800359B8(Actor* actor, s16 arg1, Vec3s* arg2);
s32 Flags_GetEventChkInf(s32 flag);
void Flags_SetEventChkInf(s32 flag);
s32 Flags_GetInfTable(s32 flag);
void Flags_SetInfTable(s32 flag);
u16 func_80037C30(GlobalContext* globalCtx, s16 arg1);
s32 func_80037D98(GlobalContext* globalCtx, Actor* actor, s16 arg2, s32* arg3);
s32 func_80038290(GlobalContext* globalCtx, Actor* actor, Vec3s* arg2, Vec3s* arg3, Vec3f arg4);
void ActorOverlayTable_LogPrint(void);
void ActorOverlayTable_Init(void);
void ActorOverlayTable_Cleanup(void);
// ? func_80038600(?);
// ? func_80038708(?);
// ? func_8003871C(?);
// ? func_80038728(?);
// ? func_80038780(?);
// ? func_800387FC(?);
// ? func_8003880C(?);
// ? func_80038870(?);
// ? func_80038878(?);
// ? func_800388A8(?);
// ? func_800388E8(?);
// ? func_80038924(?);
// ? func_800389D4(?);
void func_80038A28(CollisionPoly*, f32, f32, f32, MtxF*);
// ? func_80038B7C(?);
// ? func_80038BE0(?);
// ? func_80038D48(?);
// ? func_80038E78(?);
// ? func_80038F20(?);
// ? func_80038F60(?);
// ? func_80039000(?);
// ? func_800390A0(?);
// ? func_8003937C(?);
// ? func_80039448(?);
// ? func_8003965C(?);
// ? func_800396F0(?);
// ? func_8003992C(?);
// ? func_80039A3C(?);
// ? func_80039AEC(?);
// ? func_8003A3E0(?);
// ? func_8003A5B8(?);
// ? func_8003A7D8(?);
// ? func_8003A95C(?);
// ? func_8003AB28(?);
// ? func_8003AC54(?);
// ? func_8003AD00(?);
// ? func_8003ADC8(?);
// ? func_8003AEA8(?);
// ? func_8003B04C(?);
// ? func_8003B218(?);
// ? func_8003B3C8(?);
// ? func_8003BB18(?);
// ? func_8003BF18(?);
// ? func_8003BF5C(?);
// ? func_8003BFF4(?);
// ? func_8003C078(?);
// ? T_BGCheck_getBGDataInfo(?);
// ? func_8003C55C(?);
// ? func_8003C614(?);
f32 func_8003C8EC(GlobalContext*, CollisionContext*, CollisionPoly**, Vec3f*);
f32 func_8003C940(CollisionContext*, CollisionPoly**, s32*, Vec3f*);
// ? func_8003C9A4(?);
f32 func_8003CA0C(GlobalContext*, CollisionContext*, CollisionPoly**, u32*, Actor*, Vec3f*);
f32 func_8003CB30(GlobalContext*, CollisionContext*, PosRot*, MtxF*);
f32 func_8003CCA4(CollisionContext*, CollisionPoly**, s32*, Vec3f*);
// ? func_8003CDD4(?);
s32 func_8003D52C(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, f32, CollisionPoly**, u32*, Actor*, f32);
s32 func_8003D594(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, f32, CollisionPoly**, u32*, Actor*, f32);
// ? func_8003D600(?);
s32 func_8003D7A0(CollisionContext*, f32*, Vec3f*, f32, UNK_PTR, u32*, Actor*);
// ? func_8003D7F0(?);
// ? func_8003DD28(?);
// ? func_8003DD6C(?);
s32 func_8003DE84(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*);
s32 func_8003DF10(CollisionContext*, Vec3f*, Vec3f*, Vec3f*, CollisionPoly**, u32, u32, u32, u32, u32*, Actor*);
// ? func_8003DFA0(?);
// ? func_8003E0FC(?);
// ? func_8003E188(?);
// ? func_8003E214(?);
// ? func_8003E398(?);
// ? func_8003E3AC(?);
// ? func_8003E4DC(?);
// ? func_8003E530(?);
// ? func_8003E568(?);
// ? func_8003E5B4(?);
// ? func_8003E688(?);
// ? func_8003E6C4(?);
// ? func_8003E6E4(?);
// ? func_8003E6EC(?);
// ? func_8003E750(?);
// ? func_8003E804(?);
// ? func_8003E82C(?);
// ? func_8003E834(?);
// ? func_8003E888(?);
// ? func_8003E890(?);
// ? func_8003E8EC(?);
// ? func_8003E934(?);
// ? func_8003E954(?);
// ? func_8003E9A0(?);
void func_8003EBF8(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, u32 dynaPolyId);
void func_8003EC50(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, u32 dynaPolyId);
u32 DynaPolyInfo_RegisterActor(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, Actor* actor, u32 arg3);
DynaPolyActor* DynaPolyInfo_GetActor(CollisionContext* colCtx, u32 dynaPolyId);
void DynaPolyInfo_Free(GlobalContext* globalCtx, DynaCollisionContext* dynaColCtx, u32 dynaPolyId);
// ? func_8003EE80(?);
// ? func_8003F8EC(?);
// ? func_8003F984(?);
// ? func_8003FB64(?);
// ? func_8003FBF4(?);
// ? func_8003FDDC(?);
// ? func_80040284(?);
// ? func_800409A8(?);
// ? func_80040BE4(?);
// ? func_80040E40(?);
// ? func_80040FA4(?);
// ? func_80041128(?);
// ? func_80041240(?);
// ? func_800413F8(?);
// ? func_80041510(?);
// ? func_80041648(?);
// ? func_800417A0(?);
void DynaPolyInfo_Alloc(u32 collision, void* collisionPtr);
// ? func_80041978(?);
// ? func_800419B0(?);
// ? func_80041A28(?);
// ? func_80041A4C(?);
// ? func_80041B24(?);
// ? func_80041B80(?);
// ? func_80041C10(?);
// ? func_80041C98(?);
// ? func_80041D4C(?);
// ? func_80041D94(?);
// ? func_80041DB8(?);
// ? func_80041EC8(?);
// ? func_80041F10(?);
// ? func_80041F34(?);
// ? func_80042048(?);
// ? func_80042108(?);
s32 func_8004213C(GlobalContext*, CollisionContext*, f32, f32, f32*, UNK_PTR);
// ? func_80042244(?);
// ? func_80042538(?);
// ? func_80042548(?);
// ? func_8004259C(?);
s32 func_800427B4(CollisionPoly*, CollisionPoly*, s32, s32, Vec3f*);
// ? func_80042868(?);
// ? func_80042B2C(?);
void func_80042C3C(GlobalContext*, CollisionContext*);
// ? func_80042CB8(?);
// ? func_80042EF8(?);
void func_80042FC4(GlobalContext*, CollisionContext*);
// ? func_800430A0(?);
// ? func_800432A0(?);
// ? func_80043334(?);
// ? func_800433A4(?);
void DynaPolyInfo_SetActorMove(DynaPolyActor* actor, DynaPolyMoveFlag flags);
void func_800434A0(DynaPolyActor* dynaActor);
void func_800434A8(DynaPolyActor* actor);
// ? func_800434B8(?);
// ? func_800434F8(?);
void func_80043538(DynaPolyActor* actor);
f32 func_800437F0(f32, f32);
// ? func_8004389C(?);
// ? func_800438DC(?);
// ? func_8004391C(?);
// ? func_800439AC(?);
// ? func_80043A3C(?);
// ? func_80043ABC(?);
// ? func_80043B60(?);
// ? func_80043BC4(?);
// ? func_80043C28(?);
// ? func_80043CAC(?);
// ? func_80043D18(?);
// ? func_80043F34(?);
// ? func_80043F94(?);
// ? func_80044340(?);
// ? func_800443A0(?);
// ? func_80044434(?);
// ? func_80044510(?);
// ? func_80044568(?);
// ? func_80044740(?);
// ? func_8004476C(?);
// ? func_8004479C(?);
// ? func_8004481C(?);
// ? func_800448CC(?);
// ? func_800449AC(?);
// ? func_80044A74(?);
// ? func_80044ADC(?);
// ? func_80044E68(?);
// ? func_800450A4(?);
// ? func_80045128(?);
// ? func_80045254(?);
// ? func_80045350(?);
// ? func_8004545C(?);
// ? func_80045508(?);
// ? func_80045714(?);
// ? func_800457A8(?);
// ? func_800458D4(?);
// ? func_80045B08(?);
// ? func_80045C74(?);
// ? func_800460A8(?);
// ? func_800466F8(?);
// ? func_800468CC(?);
// ? func_800469C0(?);
// ? func_80046B44(?);
// ? func_80046CB4(?);
// ? func_80046E20(?);
// ? func_80047394(?);
// ? func_800473A0(?);
// ? func_80051B3C(?);
// ? func_80052E0C(?);
// ? func_80054314(?);
// ? func_8005445C(?);
// ? func_80054478(?);
void func_80057C6C(Camera* camera, View* view, CollisionContext* colCtx, GlobalContext* globalCtx);
// ? func_80057FC4(?);
// ? func_80058148(?);
void Camera_ChangeStatus(Camera* camera, s16 status);
// ? func_800584E8(?);
// ? func_800588B4(?);
// ? func_80058CF8(?);
// ? func_80058D34(?);
// ? func_80058E8C(?);
// ? func_800591EC(?);
void func_80059EC8(Camera* camera);
// ? func_8005A02C(?);
// ? func_8005A04C(?);
// ? func_8005A444(?);
// ? func_8005A548(?);
s32 func_8005A77C(Camera* camera, s16 button);
// ? func_8005A7A8(?);
// ? func_8005A8C4(?);
s16 func_8005A970(Vec3s, Camera*);
s16 func_8005A9F4(Camera* camera);
void func_8005AA1C(Camera* camera, s32, s16, s32);
s32 func_8005AA90(Camera*, s32, Vec3f*);
// ? func_8005AC48(?);
// ? func_8005AC60(?);
// ? func_8005AC6C(?);
// ? func_8005AD40(?);
// ? func_8005AE64(?);
Vec3f* func_8005AFB4(Vec3f* dst, Camera* camera);
// ? func_8005B044(?);
// ? func_8005B1A4(?);
DamageTable* DamageTable_Get(s32 index);
// ? func_8005B280(?);
// ? func_8005B2AC(?);
s32 Collider_InitBase(GlobalContext* globalCtx, Collider* collider);
s32 Collider_DestroyBase(GlobalContext* globalCtx, Collider* collider);
s32 Collider_SetBase_Actor(GlobalContext* globalCtx, Collider* collider, ColliderInit_Actor* src);
s32 Collider_SetBase_Set3(GlobalContext* globalCtx, Collider* collider, Actor* actor, ColliderInit_Set3* src);
s32 Collider_SetBase(GlobalContext* globalCtx, Collider* collider, Actor* actor, ColliderInit* src);
void Collider_BaseSetAT(GlobalContext* globalCtx, Collider* collider);
void Collider_BaseSetAC(GlobalContext* globalCtx, Collider* collider);
void Collider_BaseSetOC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_InitTouch(GlobalContext* globalCtx, ColliderTouch* touch);
s32 Collider_DestroyTouch(GlobalContext* globalCtx, ColliderTouch* touch);
s32 Collider_SetTouch(GlobalContext* globalCtx, ColliderTouch* dest, ColliderTouch* src);
void Collider_BodySetAT_Unk(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_InitBump(GlobalContext* globalCtx, ColliderBump* bump);
s32 Collider_DestroyBump(GlobalContext* globalCtx, ColliderBump* bump);
s32 Collider_SetBump(GlobalContext* globalCtx, ColliderBump* bump, ColliderBumpInit* init);
s32 Collider_InitBody(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_DestroyBody(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_SetBody(GlobalContext* globalCtx, ColliderBody* body, ColliderBodyInit* bodyInit);
void Collider_BodySetAT(GlobalContext* globalCtx, ColliderBody* body);
void Collider_BodySetAC(GlobalContext* globalCtx, ColliderBody* body);
void Collider_BodySetOC(GlobalContext* globalCtx, ColliderBody* body);
s32 Collider_InitJntSphItemDim(GlobalContext* globalCtx, ColliderJntSphItemDim* dim);
s32 Collider_DestroyJntSphItemDim(GlobalContext* globalCtx, ColliderJntSphItemDim* item);
s32 Collider_SetJntSphItemDim(GlobalContext* globalCtx, ColliderJntSphItemDim* dest, ColliderJntSphItemDimInit* src);
s32 Collider_InitJntSphItem(GlobalContext* globalCtx, ColliderJntSphItem* item);
s32 Collider_DestroyJntSphItem(GlobalContext* globalCtx, ColliderJntSphItem* item);
s32 Collider_SetJntSphItem(GlobalContext* globalCtx, ColliderJntSphItem* dest, ColliderJntSphItemInit* src);
s32 Collider_JntSphItemSetAT(GlobalContext* globalCtx, ColliderJntSphItem* collider);
s32 Collider_JntSphItemSetAC(GlobalContext* globalCtx, ColliderJntSphItem* collider);
s32 Collider_JntSphItemSetOC(GlobalContext* globalCtx, ColliderJntSphItem* collider);
s32 Collider_InitJntSph(GlobalContext* globalCtx, ColliderJntSph* collider);
s32 Collider_FreeJntSph(GlobalContext* globalCtx, ColliderJntSph* collider);
s32 Collider_DestroyJntSph(GlobalContext* globalCtx, ColliderJntSph* collider);
s32 Collider_SetJntSph_Set(GlobalContext* globalCtx, ColliderJntSph* dest, ColliderJntSphInit_Actor* src);
s32 Collider_SetJntSph_Set3(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit_Set3* src);
s32 Collider_SetJntSph_Set5(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit* src);
s32 Collider_SetJntSph(GlobalContext* globalCtx, ColliderJntSph* dest, Actor* actor, ColliderJntSphInit* src,
ColliderJntSphItem* list);
s32 Collider_InitCylinderDim(GlobalContext* globalCtx, Cylinder16* dim);
s32 Collider_DestroyCylinderDim(GlobalContext* globalCtx, Cylinder16* dim);
s32 Collider_SetCylinderDim(GlobalContext* globalCtx, Cylinder16* dest, Cylinder16* src);
s32 Collider_InitCylinder(GlobalContext* globalCtx, ColliderCylinder* collider);
s32 Collider_DestroyCylinder(GlobalContext* globalCtx, ColliderCylinder* collider);
s32 Collider_SetCylinder_Actor(GlobalContext* globalCtx, ColliderCylinder* collider, ColliderCylinderInit_Actor* arg2);
s32 Collider_SetCylinder_Set3(GlobalContext* globalCtx, ColliderCylinder* collider, Actor* actor,
ColliderCylinderInit_Set3* src);
s32 Collider_SetCylinder(GlobalContext* globalCtx, ColliderCylinder* collider, Actor* actor, ColliderCylinderInit* src);
s32 Collider_CylinderSetAT(GlobalContext* globalCtx, Collider* collider);
s32 Collider_CylinderSetAC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_CylinderSetOC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_InitTrisItemDim(GlobalContext* globalCtx, TriNorm* dim);
s32 Collider_DestroyTrisItemDim(GlobalContext* globalCtx, TriNorm* dim);
s32 Collider_SetTrisItemDim(GlobalContext* globalCtx, TriNorm* dest, ColliderTrisItemDimInit* src);
s32 Collider_InitTrisItem(GlobalContext* globalCtx, ColliderTrisItem* collider);
s32 Collider_DestroyTrisItem(GlobalContext* globalCtx, ColliderTrisItem* collider);
s32 Collider_SetTrisItem(GlobalContext* globalCtx, ColliderTrisItem* dest, ColliderTrisItemInit* src);
s32 Collider_TrisItemSetAT(GlobalContext* globalCtx, ColliderTrisItem* item);
s32 Collider_TrisItemSetAC(GlobalContext* globalCtx, ColliderTrisItem* item);
s32 Collider_TrisItemSetOC(GlobalContext* globalCtx, ColliderTrisItem* item);
s32 Collider_InitTris(GlobalContext* globalCtx, ColliderTris* tris);
s32 Collider_FreeTris(GlobalContext* globalCtx, ColliderTris* tris);
s32 Collider_DestroyTris(GlobalContext* globalCtx, ColliderTris* tris);
s32 Collider_SetTris_Set3(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit_Set3* src);
s32 Collider_SetTris_Set5(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit* src);
s32 Collider_SetTris(GlobalContext* globalCtx, ColliderTris* dest, Actor* actor, ColliderTrisInit* src,
ColliderTrisItem* list);
s32 Collider_TrisSetAT(GlobalContext* globalCtx, Collider* collider);
s32 Collider_TrisSetAC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_TrisSetOC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_InitQuadDim(GlobalContext* globalCtx, ColliderQuadDim* dim);
s32 Collider_DestroyQuadDim(GlobalContext* globalCtx, ColliderQuadDim* dim);
s32 func_8005CEC4(GlobalContext* globalCtx, ColliderQuadDim* dim);
void func_8005CEDC(ColliderQuadDim* dim);
s32 Collider_SetQuadDim(GlobalContext* globalCtx, ColliderQuadDim* dest, ColliderQuadDimInit* src);
s32 Collider_InitQuad(GlobalContext* globalCtx, ColliderQuad* collider);
s32 Collider_DestroyQuad(GlobalContext* globalCtx, ColliderQuad* collider);
s32 Collider_SetQuad_Set3(GlobalContext* globalCtx, ColliderQuad* collider, Actor* actor, ColliderQuadInit_Set3* src);
s32 Collider_SetQuad(GlobalContext* globalCtx, ColliderQuad* collider, Actor* actor, ColliderQuadInit* src);
s32 Collider_QuadSetAT(GlobalContext* globalCtx, Collider* collider);
s32 Collider_QuadSetAC(GlobalContext* globalCtx, Collider* collider);
s32 Collider_QuadSetOC(GlobalContext* globalCtx, Collider* collider);
s32 func_8005D218(GlobalContext* globalCtx, ColliderQuad* quad, Vec3f* arg2);
s32 Collider_InitOcLine(GlobalContext* globalCtx, OcLine* line);
s32 Collider_DestroyOcLine(GlobalContext* globalCtx, OcLine* line);
// ? func_8005D334(?);
// ? func_8005D3A4(?);
void func_8005D3BC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_DestroyContext(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_InitContext(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_EnableSAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void CollisionCheck_DisableSAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
void func_8005D4DC(GlobalContext* globalCtx, Collider* collider);
void CollisionCheck_Draw(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
s32 CollisionCheck_SetAT(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider);
s32 CollisionCheck_SetAT_SAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider, s32 index);
s32 CollisionCheck_SetAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider);
s32 CollisionCheck_SetAC_SAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider, s32 index);
s32 CollisionCheck_SetOC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider);
s32 CollisionCheck_SetOC_SAC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Collider* collider, s32 index);
s32 CollisionCheck_SetOCLine(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, OcLine* collider);
// ? func_8005DF2C(?);
// ? func_8005DF50(?);
// ? func_8005DF74(?);
// ? func_8005E2EC(?);
// ? func_8005E4F8(?);
// ? func_8005E604(?);
// ? func_8005E800(?);
// ? func_8005E81C(?);
// ? func_800611A0(?);
// ? func_80061274(?);
void func_8006139C(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
// ? func_8006146C(?);
// ? func_800614A4(?);
// ? func_80061BF4(?);
// ? func_80061C18(?);
void CollisionCheck_OC(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx);
// ? func_80061E48(?);
void func_80061E8C(CollisionCheckInfo* info);
void func_80061EB0(CollisionCheckInfo* info, CollisionCheckInfoInit* init);
void func_80061ED4(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit* init);
void func_80061EFC(CollisionCheckInfo* info, DamageTable* damageTable, CollisionCheckInfoInit2* init);
// ? func_80061F64(?);
// ? func_800622E4(?);
s32 CollisionCheck_GeneralLineOcCheck(GlobalContext* globalCtx, CollisionCheckContext* colChkCtx, Vec3f* camera_3C,
Vec3f* arg3, Actor** arg4, s32 arg5);
// ? func_800626B0(?);
void Collider_CylinderUpdate(Actor* actor, ColliderCylinder* collider);
// ? func_80062734(?);
void func_80062A28(GlobalContext*, Vec3f*);
void func_80062B80(GlobalContext*, Vec3f*);
void func_80062CD4(GlobalContext* globalCtx, Vec3f* v);
void func_80062D60(GlobalContext* globalCtx, Vec3f* v);
void func_80062DAC(GlobalContext* globalCtx, Vec3f* v, Vec3f* arg2);
void func_80062E14(GlobalContext* globalCtx, Vec3f* arg1, Vec3f* arg2);
s32 func_80062ECC(f32, f32, f32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, Vec3f*);
void SaveContext_Init(void);
// ? func_800636C0(?);
void func_8006375C(s32 arg0, s32 arg1, float* d_80855320);
// ? func_8006376C(?);
// ? func_80063828(?);
// ? func_8006390C(?);
// ? func_80063C04(?);
// ? func_80063D7C(?);
void DebugDisplay_Init(void);
DebugDispObject* DebugDisplay_AddObject(f32 posX, f32 posY, f32 posZ, s16 rotX, s16 rotY, s16 rotZ, f32 scaleX,
f32 scaleY, f32 scaleZ, u8 red, u8 green, u8 blue, u8 alpha, s16 type,
GraphicsContext* gfxCtx);
void DebugDisplay_DrawObjects(GlobalContext* globalCtx);
void func_8006450C(GlobalContext* globalCtx, CutsceneContext* csCtx);
void func_80064534(GlobalContext* globalCtx, CutsceneContext* csCtx);
void func_80064558(GlobalContext* globalCtx, CutsceneContext* csCtx);
void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx);
void Cutscene_HandleEntranceTriggers(GlobalContext* globalCtx);
void Cutscene_HandleConditionalTriggers(GlobalContext* globalCtx);
void Cutscene_SetSegment(GlobalContext* globalCtx, u32 segment);
void* MemCopy(void* dest, void* src, s32 size);
void func_800694A0(GlobalContext* globalCtx, s16 drawId);
void func_8006BA00(GlobalContext* globalCtx);
void func_8006BA30(GlobalContext* globalCtx);
void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* pos, s32 duration, u16 sfxId);
u16 ElfMessage_GetSariaText(GlobalContext* globalCtx);
u16 ElfMessage_GetCUpText(GlobalContext* globalCtx);
u16 Text_GetFaceReaction(GlobalContext* globalCtx, u32 reactionSet);
void Flags_UnsetAllEnv(GlobalContext* globalCtx);
void Flags_SetEnv(GlobalContext* globalCtx, s16 flag);
void Flags_UnsetEnv(GlobalContext* globalCtx, s16 flag);
s32 Flags_GetEnv(GlobalContext* globalCtx, s16 flag);
// ? func_8006C510(?);
// ? func_8006C5A8(?);
// ? func_8006CBAC(?);
// ? func_8006CFC0(?);
// ? func_8006D074(?);
// ? func_8006D0AC(?);
// ? func_8006D0EC(?);
// ? func_8006D684(?);
void func_8006DC68(GlobalContext* globalCtx, Player* player);
u32 Jpeg_SendTask(JpegContext* ctx);
void Jpeg_CopyToZbuffer(u16* src, u16* zbuffer, s32 x, s32 y);
u16 Jpeg_GetU16(u8* ptr);
void Jpeg_ParseMarkers(u8* ptr, JpegContext* ctx);
s32 Jpeg_Decode(void* data, u16* zbuffer, JpegWork* workBuff, u32 workSize);
void func_8006EA30(GlobalContext* globalCtx);
// ? func_8006ECF4(?);
void func_8006EE48(UNK_TYPE);
// ? func_8006EE50(?);
// ? func_8006EE60(?);
// ? func_8006EEBC(?);
// ? func_8006EF10(?);
// ? func_8006F0A0(?);
// ? func_8006F0D4(?);
// ? func_8006F0FC(?);
u8 func_8006F140(GlobalContext*, EnvironmentContext*, UNK_TYPE);
f32 func_8006F93C(u16, u16, u16);
f32 func_8006F9BC(u16, u16, u16, u16, u16);
// ? func_8006FB94(?);
// ? func_8006FC88(?);
// ? func_80070600(?);
// ? func_800706A0(?);
// ? func_80070718(?);
// ? func_80070C24(?);
// ? func_800730DC(?);
void func_80073988(GlobalContext*, EnvironmentContext*, View*, GraphicsContext*, Vec3f, UNK_TYPE);
// ? func_80073A5C(?);
f32 func_800746DC();
// ? func_80074704(?);
// ? func_80074D6C(?);
// ? func_80074FF4(?);
// ? func_800750C0(?);
// ? func_800753C4(?);
// ? func_8007542C(?);
// ? func_800758AC(?);
// ? func_80075B44(?);
// ? func_80075E68(?);
// ? func_80075F14(?);
// ? func_800760F4(?);
// ? func_800763A8(?);
// ? func_800766C4(?);
void func_8007672C(GraphicsContext*, u8, u8, u8, u8, UNK_TYPE);
// ? func_80076934(?);
void func_800773A8(GlobalContext* globalCtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
s32 func_800775CC();
void func_800775D8();
s32 func_800775E4();
void func_800775F0(u16);
// ? func_80077600(?);
void Lib_MemSet(u8* dest, size_t size, u8 val);
f32 Math_Coss(s16 angle);
f32 Math_Sins(s16 angle);
s32 Math_ApproxUpdateScaledS(s16* fp, s16 target, s16 step);
s32 Math_ApproxS(s16* fp, s16 target, s16 step);
s32 Math_ApproxF(f32* fp, f32 target, f32 step);
s32 func_80077AF8(s16* fp, s16 target, s16 step);
s32 func_80077B58(s16* fp, s16 target, s16 step);
s32 func_80077C6C(f32* fp, f32 target, f32 incrStep, f32 decrStep);
s16 Math_Rand_S16Offset(s16 base, s16 range);
void Math_Vec3f_Copy(Vec3f* dest, Vec3f* src);
void Math_Vec3s_ToVec3f(Vec3f* dest, Vec3s* src);
void Math_Vec3f_Sum(Vec3f* a, Vec3f* b, Vec3f* dest);
void Math_Vec3f_Diff(Vec3f* a, Vec3f* b, Vec3f* dest);
void Math_Vec3s_DiffToVec3f(Vec3f* dest, Vec3s* a, Vec3s* b);
void Math_Vec3f_Scale(Vec3f* vec, f32 scaleF);
f32 Math_Vec3f_DistXYZ(Vec3f* a, Vec3f* b);
f32 Math_Vec3f_DistXYZAndStoreDiff(Vec3f* a, Vec3f* b, Vec3f* dest);
f32 Math_Vec3f_DistXZ(Vec3f* a, Vec3f* b);
s16 Math_Vec3f_Yaw(Vec3f* a, Vec3f* b);
s16 Math_Vec3f_Pitch(Vec3f* a, Vec3f* b);
void Actor_ProcessInitChain(Actor* actor, InitChainEntry* initChain);
f32 Math_SmoothScaleMaxMinF(f32* pValue, f32 target, f32 scale, f32 maxStep, f32 minStep);
void Math_SmoothScaleMaxF(f32* pValue, f32 target, f32 scale, f32 maxStep);
void Math_SmoothDownscaleMaxF(f32* pValue, f32 scale, f32 maxStep);
s16 Math_SmoothScaleMaxMinS(s16* pValue, s16 target, s16 invScale, s16 maxStep, s16 minStep);
void Math_SmoothScaleMaxS(s16* pValue, s16 target, s16 invScale, s16 maxStep);
void Color_RGBA8_Copy(Color_RGBA8* dst, Color_RGBA8* src);
void func_80078884(u16 sfxId);
void func_800788CC(u16 sfxId);
void func_80078914(Vec3f* arg0, u16 sfxId);
void Health_InitData(GlobalContext* globalCtx);
void Health_UpdateData(GlobalContext* globalCtx);
void Health_Draw(GlobalContext* globalCtx);
void Health_HandleCriticalAlarm(GlobalContext* globalCtx);
void Lights_InitPositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue,
s16 radius, u32 type);
void Lights_InitType0PositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue,
s16 radius);
void Lights_InitType2PositionalLight(LightInfoPositional* info, s16 posX, s16 posY, s16 posZ, u8 red, u8 green, u8 blue,
s16 radius);
void Lights_SetPositionalLightColorAndRadius(LightInfoPositional* info, u8 red, u8 green, u8 blue, s16 radius);
void Lights_InitDirectional(LightInfoDirectional* info, s8 dirX, s8 dirY, s8 dirZ, u8 red, u8 green, u8 blue);
void Lights_MapperInit(LightMapper* mapper, u8 red, u8 green, u8 blue);
// ? func_8007A084(?);
// ? func_8007A474(?);
z_Light* Lights_FindFreeSlot();
void Lights_Free(z_Light* light);
void func_8007A614(GlobalContext* globalCtx, LightingContext* lightCtx);
void func_8007A698(LightingContext* lightCtx, u8 arg1, u8 arg2, u8 arg3, s16 arg4, s16 arg5);
void Lights_SetAmbientColor(LightingContext* lightCtx, u8 red, u8 green, u8 blue);
LightMapper* Lights_CreateMapper(LightingContext* lightCtx, GraphicsContext* gfxCtx);
void Lights_ClearHead(GlobalContext* globalCtx, LightingContext* lightCtx);
void Lights_RemoveAll(GlobalContext* globalCtx, LightingContext* lightCtx);
z_Light* Lights_Insert(GlobalContext* globalCtx, LightingContext* lightCtx, LightInfo* info);
void Lights_Remove(GlobalContext* globalCtx, LightingContext* lightCtx, z_Light* light);
LightMapper* func_8007A960(GraphicsContext* gfxCtx, u8 red, u8 green, u8 blue);
// ? func_8007A9B4(?);
// ? func_8007ABBC(?);
void ZeldaArena_CheckPointer(void* ptr, u32 size, const char* name, const char* action);
void* ZeldaArena_Malloc(u32 size);
void* ZeldaArena_MallocDebug(u32 size, const char* file, s32 line);
void* ZeldaArena_MallocR(u32 size);
void* ZeldaArena_MallocRDebug(u32 size, const char* file, s32 line);
void* ZeldaArena_Realloc(void* ptr, u32 newSize);
void* ZeldaArena_ReallocDebug(void* ptr, u32 newSize, const char* file, s32 line);
void ZeldaArena_Free(void* ptr);
void ZeldaArena_FreeDebug(void* ptr, const char* file, s32 line);
void* ZeldaArena_Calloc(u32 num, u32 size);
void ZeldaArena_Display();
void ZeldaArena_GetSizes(u32* outMaxFree, u32* outFree, u32* outAlloc);
void ZeldaArena_Check();
void ZeldaArena_Init(void* start, u32 size);
void ZeldaArena_Cleanup();
u8 ZeldaArena_IsInitalized();
void MapMark_Init(GlobalContext* globalCtx);
void MapMark_ClearPointers(GlobalContext* globalCtx);
void MapMark_DrawConditionally(GlobalContext* globalCtx);
void PreNmiBuff_Init(PreNmiBuff* this);
void PreNmiBuff_SetReset(PreNmiBuff* this);
u32 PreNmiBuff_IsResetting(PreNmiBuff* this);
void MsgEvent_SendNullTask();
f32 func_8007BF90(Vec3f*, Vec3f*);
// ? func_8007C028(?);
// ? func_8007C058(?);
// ? func_8007C0A8(?);
// ? func_8007C0F8(?);
// ? func_8007C25C(?);
// ? func_8007C29C(?);
// ? func_8007C3F4(?);
// ? func_8007C490(?);
// ? func_8007C4E0(?);
// ? func_8007C680(?);
// ? func_8007C704(?);
// ? func_8007C76C(?);
// ? func_8007C7A8(?);
// ? func_8007C7F8(?);
// ? func_8007C820(?);
// ? func_8007C850(?);
// ? func_8007FFE0(?);
// ? func_80080024(?);
s16 func_800800F8(GlobalContext* globalCtx, s16 arg1, s16 arg2, Actor* actor, s16 arg4);
// ? func_800803F0(?);
// ? func_80080480(?);
void func_80080788(UNK_TYPE, UNK_TYPE);
void Map_SavePlayerInitialInfo(GlobalContext* globalCtx);
void Map_SetFloorPalettesData(GlobalContext* globalCtx, s16 floor);
void Map_InitData(GlobalContext* globalCtx, s16 room);
void Map_InitRoomData(GlobalContext* globalCtx, s16 room);
void Map_Destroy(GlobalContext* globalCtx);
void Map_Init(GlobalContext* globalCtx);
void Minimap_Draw(GlobalContext* globalCtx);