mirror of
https://github.com/pret/pokeplatinum.git
synced 2024-11-23 05:49:44 +00:00
Mostly decompile spl
This commit is contained in:
parent
be0449e05d
commit
ff7d189af6
@ -3,6 +3,6 @@
|
||||
|
||||
#include "spl.h"
|
||||
|
||||
typedef void (*UnkFuncPtr_020146F4)(UnkSPLStruct6 *);
|
||||
typedef void (*UnkFuncPtr_020146F4)(SPLEmitter *);
|
||||
|
||||
#endif // POKEPLATINUM_FUNCPTR_020146F4_H
|
||||
|
@ -41,7 +41,7 @@ u16 ov12_02220240(UnkStruct_ov12_0221FCDC *param0);
|
||||
u16 ov12_02220248(UnkStruct_ov12_0221FCDC *param0);
|
||||
UnkStruct_02014014 *ov12_02220250(UnkStruct_ov12_0221FCDC *param0);
|
||||
UnkStruct_02014014 *ov12_02220260(UnkStruct_ov12_0221FCDC *param0, int param1);
|
||||
UnkSPLStruct6 *ov12_0222026C(UnkStruct_ov12_0221FCDC *param0, int param1);
|
||||
SPLEmitter *ov12_0222026C(UnkStruct_ov12_0221FCDC *param0, int param1);
|
||||
BGL *ov12_02220278(UnkStruct_ov12_0221FCDC *param0);
|
||||
s32 ov12_02220280(UnkStruct_ov12_0221FCDC *param0, int param1);
|
||||
CellActorData *ov12_02220298(UnkStruct_ov12_0221FCDC *param0, int param1);
|
||||
|
@ -10,7 +10,7 @@ UnkStruct_02014014 *ov12_022237F0(int param0, int param1, int param2);
|
||||
UnkStruct_02014014 *ov12_02223818(int param0, int param1, int param2, int param3);
|
||||
void *ov12_02223844(NARC *param0, int param1, int param2);
|
||||
UnkStruct_02014014 *ov12_0222384C(NARC *param0, int param1, int param2, int param3);
|
||||
UnkSPLStruct6 *ov12_02223880(UnkStruct_02014014 *param0, int param1, int param2, void *param3);
|
||||
SPLEmitter *ov12_02223880(UnkStruct_02014014 *param0, int param1, int param2, void *param3);
|
||||
void ov12_02223894(UnkStruct_02014014 *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV12_022237EC_H
|
||||
|
@ -3,26 +3,26 @@
|
||||
|
||||
#include "spl.h"
|
||||
|
||||
void ov12_022238DC(UnkSPLStruct6 *param0);
|
||||
void ov12_022238E0(UnkSPLStruct6 *param0);
|
||||
void ov12_02223998(UnkSPLStruct6 *param0);
|
||||
void ov12_022239F4(UnkSPLStruct6 *param0);
|
||||
void ov12_02223A38(UnkSPLStruct6 *param0);
|
||||
void ov12_02223A7C(UnkSPLStruct6 *param0);
|
||||
void ov12_02223AC8(UnkSPLStruct6 *param0);
|
||||
void ov12_02223B30(UnkSPLStruct6 *param0);
|
||||
void ov12_02223B98(UnkSPLStruct6 *param0);
|
||||
void ov12_02224168(UnkSPLStruct6 *param0);
|
||||
void ov12_02224174(UnkSPLStruct6 *param0);
|
||||
void ov12_02224180(UnkSPLStruct6 *param0);
|
||||
void ov12_0222418C(UnkSPLStruct6 *param0);
|
||||
void ov12_02224198(UnkSPLStruct6 *param0);
|
||||
void ov12_022241A4(UnkSPLStruct6 *param0);
|
||||
void ov12_022241B0(UnkSPLStruct6 *param0);
|
||||
void ov12_022241BC(UnkSPLStruct6 *param0);
|
||||
void ov12_022241C8(UnkSPLStruct6 *param0);
|
||||
void ov12_022241D4(UnkSPLStruct6 *param0);
|
||||
void ov12_022241E0(UnkSPLStruct6 *param0);
|
||||
void ov12_022241EC(UnkSPLStruct6 *param0);
|
||||
void ov12_022238DC(SPLEmitter *param0);
|
||||
void ov12_022238E0(SPLEmitter *param0);
|
||||
void ov12_02223998(SPLEmitter *param0);
|
||||
void ov12_022239F4(SPLEmitter *param0);
|
||||
void ov12_02223A38(SPLEmitter *param0);
|
||||
void ov12_02223A7C(SPLEmitter *param0);
|
||||
void ov12_02223AC8(SPLEmitter *param0);
|
||||
void ov12_02223B30(SPLEmitter *param0);
|
||||
void ov12_02223B98(SPLEmitter *param0);
|
||||
void ov12_02224168(SPLEmitter *param0);
|
||||
void ov12_02224174(SPLEmitter *param0);
|
||||
void ov12_02224180(SPLEmitter *param0);
|
||||
void ov12_0222418C(SPLEmitter *param0);
|
||||
void ov12_02224198(SPLEmitter *param0);
|
||||
void ov12_022241A4(SPLEmitter *param0);
|
||||
void ov12_022241B0(SPLEmitter *param0);
|
||||
void ov12_022241BC(SPLEmitter *param0);
|
||||
void ov12_022241C8(SPLEmitter *param0);
|
||||
void ov12_022241D4(SPLEmitter *param0);
|
||||
void ov12_022241E0(SPLEmitter *param0);
|
||||
void ov12_022241EC(SPLEmitter *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV12_0222389C_H
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include "spl.h"
|
||||
|
||||
void ov12_02224F14(UnkSPLStruct6 *param0);
|
||||
void ov12_02224F14(SPLEmitter *param0);
|
||||
s8 ov12_02224FC4(UnkStruct_ov12_02225640 *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV12_0222421C_H
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include "spl.h"
|
||||
|
||||
void ov12_022255D4(int param0, UnkSPLStruct6 *param1, UnkStruct_ov12_02225640 *param2);
|
||||
void ov12_022255D4(int param0, SPLEmitter *param1, UnkStruct_ov12_02225640 *param2);
|
||||
int ov12_022255EC(int param0);
|
||||
int ov12_02225614(void);
|
||||
|
||||
|
@ -5,6 +5,6 @@
|
||||
|
||||
#include "spl.h"
|
||||
|
||||
void ov12_0222584C(int param0, UnkSPLStruct6 *param1, UnkStruct_ov12_02225640 *param2);
|
||||
void ov12_0222584C(int param0, SPLEmitter *param1, UnkStruct_ov12_02225640 *param2);
|
||||
|
||||
#endif // POKEPLATINUM_OV12_02225640_H
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
const int ov77_021D6CB8(void);
|
||||
UnkStruct_02014014 *ov77_021D6CBC(UnkStruct_ov77_021D6CFC *param0);
|
||||
UnkSPLStruct6 *ov77_021D6CD0(UnkStruct_ov77_021D6CFC *param0, int param1);
|
||||
SPLEmitter *ov77_021D6CD0(UnkStruct_ov77_021D6CFC *param0, int param1);
|
||||
void ov77_021D6CFC(UnkStruct_ov77_021D6CFC *param0);
|
||||
void ov77_021D6E28(UnkStruct_ov77_021D6CFC *param0);
|
||||
void ov77_021D6E40(UnkStruct_ov77_021D6CFC *param0);
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
typedef struct {
|
||||
UnkStruct_ov119_021D1930 unk_00;
|
||||
UnkSPLStruct6 *unk_08;
|
||||
SPLEmitter *unk_08;
|
||||
UnkStruct_02014014 *unk_0C;
|
||||
} UnkStruct_ov119_021D14DC;
|
||||
|
||||
|
@ -3,11 +3,11 @@
|
||||
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
typedef struct UnkSPLStruct8_t UnkSPLStruct8;
|
||||
struct UnkSPLStruct6_t;
|
||||
typedef struct SPLParticle_t SPLParticle;
|
||||
struct SPLEmitter_t;
|
||||
|
||||
typedef struct {
|
||||
void (*unk_00)(const void *, UnkSPLStruct8 *, VecFx32 *, struct UnkSPLStruct6_t *);
|
||||
void (*unk_00)(const void *, SPLParticle *, VecFx32 *, struct SPLEmitter_t *);
|
||||
const void *unk_04;
|
||||
} UnkStruct_020147B8;
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
typedef struct {
|
||||
UnkStruct_0207C894 unk_00;
|
||||
UnkSPLStruct6 *unk_08;
|
||||
SPLEmitter *unk_08;
|
||||
UnkStruct_02014014 *unk_0C;
|
||||
} UnkStruct_0207C8C4;
|
||||
|
||||
|
@ -25,11 +25,11 @@ void sub_02014674(UnkStruct_02014014 *param0);
|
||||
int sub_02014680(void);
|
||||
int sub_0201469C(void);
|
||||
int sub_020146C0(void);
|
||||
UnkSPLStruct6 *sub_020146E4(UnkStruct_02014014 *param0, int param1, const VecFx32 *param2);
|
||||
UnkSPLStruct6 *sub_020146F4(UnkStruct_02014014 *param0, int param1, UnkFuncPtr_020146F4 param2, void *param3);
|
||||
SPLEmitter *sub_020146E4(UnkStruct_02014014 *param0, int param1, const VecFx32 *param2);
|
||||
SPLEmitter *sub_020146F4(UnkStruct_02014014 *param0, int param1, UnkFuncPtr_020146F4 param2, void *param3);
|
||||
s32 sub_02014710(UnkStruct_02014014 *param0);
|
||||
void sub_02014718(UnkStruct_02014014 *param0);
|
||||
void sub_02014724(UnkStruct_02014014 *param0, UnkSPLStruct6 *param1);
|
||||
void sub_02014724(UnkStruct_02014014 *param0, SPLEmitter *param1);
|
||||
void *sub_02014730(UnkStruct_02014014 *param0);
|
||||
void sub_02014734(UnkStruct_02014014 *param0, VecFx32 *param1);
|
||||
void sub_02014744(UnkStruct_02014014 *param0, const VecFx32 *param1);
|
||||
@ -38,20 +38,20 @@ void sub_02014770(VecFx32 *param0);
|
||||
Camera *sub_02014784(UnkStruct_02014014 *param0);
|
||||
void sub_02014788(UnkStruct_02014014 *param0, int param1);
|
||||
u8 sub_02014790(UnkStruct_02014014 *param0);
|
||||
void sub_02014798(UnkSPLStruct6 *param0, VecFx16 *param1);
|
||||
void sub_020147B0(UnkSPLStruct6 *param0, fx32 param1);
|
||||
void sub_02014874(UnkSPLStruct6 *param0, VecFx16 *param1);
|
||||
void sub_02014890(UnkSPLStruct6 *param0, VecFx32 *param1);
|
||||
void sub_020148A8(UnkSPLStruct6 *param0, VecFx32 *param1);
|
||||
void sub_020148DC(UnkSPLStruct6 *param0, fx16 *param1);
|
||||
void sub_020148F4(UnkSPLStruct6 *param0, fx16 *param1);
|
||||
void sub_02014910(UnkSPLStruct6 *param0, u16 *param1);
|
||||
void sub_02014924(UnkSPLStruct6 *param0, u16 *param1);
|
||||
void sub_02014940(UnkSPLStruct6 *param0, u16 *param1);
|
||||
void sub_02014954(UnkSPLStruct6 *param0, u16 *param1);
|
||||
void sub_02014970(UnkSPLStruct6 *param0, VecFx32 *param1);
|
||||
void sub_02014988(UnkSPLStruct6 *param0, VecFx32 *param1);
|
||||
void sub_020149BC(UnkSPLStruct6 *param0, fx16 *param1);
|
||||
void sub_020149D4(UnkSPLStruct6 *param0, fx16 *param1);
|
||||
void sub_02014798(SPLEmitter *param0, VecFx16 *param1);
|
||||
void sub_020147B0(SPLEmitter *param0, fx32 param1);
|
||||
void sub_02014874(SPLEmitter *param0, VecFx16 *param1);
|
||||
void sub_02014890(SPLEmitter *param0, VecFx32 *param1);
|
||||
void sub_020148A8(SPLEmitter *param0, VecFx32 *param1);
|
||||
void sub_020148DC(SPLEmitter *param0, fx16 *param1);
|
||||
void sub_020148F4(SPLEmitter *param0, fx16 *param1);
|
||||
void sub_02014910(SPLEmitter *param0, u16 *param1);
|
||||
void sub_02014924(SPLEmitter *param0, u16 *param1);
|
||||
void sub_02014940(SPLEmitter *param0, u16 *param1);
|
||||
void sub_02014954(SPLEmitter *param0, u16 *param1);
|
||||
void sub_02014970(SPLEmitter *param0, VecFx32 *param1);
|
||||
void sub_02014988(SPLEmitter *param0, VecFx32 *param1);
|
||||
void sub_020149BC(SPLEmitter *param0, fx16 *param1);
|
||||
void sub_020149D4(SPLEmitter *param0, fx16 *param1);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_02014000_H
|
||||
|
@ -1,6 +1,7 @@
|
||||
#ifndef POKEPLATINUM_SPL_H
|
||||
#define POKEPLATINUM_SPL_H
|
||||
|
||||
#include "nitro/types.h"
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
@ -90,9 +91,9 @@ typedef union {
|
||||
};
|
||||
} UnkSPLUnion5;
|
||||
|
||||
typedef struct UnkSPLStruct8_t {
|
||||
struct UnkSPLStruct8_t * unk_00;
|
||||
struct UnkSPLStruct8_t * unk_04;
|
||||
typedef struct SPLParticle_t {
|
||||
struct SPLParticle_t * unk_00;
|
||||
struct SPLParticle_t * unk_04;
|
||||
VecFx32 unk_08;
|
||||
VecFx32 unk_14;
|
||||
u16 unk_20;
|
||||
@ -114,15 +115,29 @@ typedef struct UnkSPLStruct8_t {
|
||||
fx16 unk_34;
|
||||
GXRgb unk_36;
|
||||
VecFx32 unk_38;
|
||||
} UnkSPLStruct8; // size=0x44
|
||||
} SPLParticle; // size=0x44
|
||||
|
||||
typedef struct UnkSPLStruct3_t {
|
||||
UnkSPLStruct8 * unk_00;
|
||||
u8 padding_04[8];
|
||||
SPLParticle * unk_00;
|
||||
int unk_04;
|
||||
SPLParticle * unk_08;
|
||||
} UnkSPLStruct3; // size=0xc
|
||||
|
||||
typedef struct {
|
||||
u8 padding_00[4];
|
||||
union
|
||||
{
|
||||
u32 all;
|
||||
u8 padding_00[4];
|
||||
struct
|
||||
{
|
||||
u32 terminate:1;
|
||||
u32 stop_generate:1;
|
||||
u32 stop_calc:1;
|
||||
u32 stop_draw:1;
|
||||
u32 started: 1 ;
|
||||
u32 reserved0:27;
|
||||
};
|
||||
};
|
||||
} UnkSPLStruct7;
|
||||
|
||||
typedef struct UnkSPLStruct9_t {
|
||||
@ -286,12 +301,12 @@ typedef struct UnkSPLStruct5_t {
|
||||
u16 unk_12;
|
||||
} UnkSPLStruct5;
|
||||
|
||||
typedef struct UnkSPLStruct6_t {
|
||||
struct UnkSPLStruct6_t * unk_00;
|
||||
struct UnkSPLStruct6_t * unk_04;
|
||||
typedef struct SPLEmitter_t {
|
||||
struct SPLEmitter_t * unk_00;
|
||||
struct SPLEmitter_t * unk_04;
|
||||
UnkSPLStruct3 unk_08;
|
||||
UnkSPLStruct3 unk_4C;
|
||||
UnkSPLStruct4 * unk_90;
|
||||
UnkSPLStruct4 * p_res;
|
||||
UnkSPLStruct7 unk_94;
|
||||
VecFx32 unk_98;
|
||||
VecFx32 unk_A4;
|
||||
@ -321,22 +336,22 @@ typedef struct UnkSPLStruct6_t {
|
||||
} unk_F0;
|
||||
VecFx16 unk_F4;
|
||||
VecFx16 unk_FA;
|
||||
void (* unk_100)(struct UnkSPLStruct6_t *, unsigned int);
|
||||
void (* unk_100)(struct SPLEmitter_t *, unsigned int);
|
||||
void * unk_104;
|
||||
union {
|
||||
u32 unk_108_val1;
|
||||
u16 unk_108_val2[2];
|
||||
u8 unk_108_val3[4];
|
||||
} unk_108;
|
||||
} UnkSPLStruct6;
|
||||
} SPLEmitter;
|
||||
|
||||
typedef struct UnkSPLStruct2_t {
|
||||
UnkSPLStruct6 * unk_00;
|
||||
SPLEmitter * unk_00;
|
||||
int unk_04;
|
||||
UnkSPLStruct6 * unk_08;
|
||||
SPLEmitter * unk_08;
|
||||
} UnkSPLStruct2; // size=0xc
|
||||
|
||||
typedef struct UnkSPLStruct1_t {
|
||||
typedef struct SPLManager_t {
|
||||
UnkFuncPtr_0209CD00 unk_00;
|
||||
UnkSPLStruct2 unk_04;
|
||||
UnkSPLStruct2 unk_10;
|
||||
@ -357,60 +372,146 @@ typedef struct UnkSPLStruct1_t {
|
||||
} unk_38;
|
||||
s32 unk_3C;
|
||||
struct {
|
||||
UnkSPLStruct6 * unk_00;
|
||||
SPLEmitter * unk_00;
|
||||
const MtxFx43 * unk_04;
|
||||
} unk_40;
|
||||
u16 unk_48;
|
||||
u16 unk_4A;
|
||||
} UnkSPLStruct1; // size=0x4c
|
||||
} SPLManager; // size=0x4c
|
||||
|
||||
void SPL_0209C400(UnkSPLStruct1 * param0);
|
||||
void SPL_0209C444(UnkSPLStruct1 * param0, UnkSPLStruct6 * param1);
|
||||
UnkSPLStruct6 * SPL_0209C4D8(UnkSPLStruct1 * param0, int param1, void (* param2)(struct UnkSPLStruct6_t *));
|
||||
void SPL_0209C5E0(UnkSPLStruct1 * param0, const MtxFx43 * param1);
|
||||
UnkSPLStruct6 * SPL_0209C56C(UnkSPLStruct1 * param0, int param1, const VecFx32 * param2);
|
||||
void SPL_0209C6A8(UnkSPLStruct1 * param0);
|
||||
BOOL SPL_0209C7E0(UnkSPLStruct1 * param0);
|
||||
BOOL SPL_0209C7F4(UnkSPLStruct1 * param0);
|
||||
BOOL SPL_0209C808(UnkSPLStruct1 * param0, u32 (* param1)(u32, BOOL));
|
||||
BOOL SPL_0209C8BC(UnkSPLStruct1 * param0, u32 (* param1)(u32, BOOL));
|
||||
void SPL_0209C988(UnkSPLStruct1 * param0, const void * param1);
|
||||
UnkSPLStruct1 * SPL_0209CD00(UnkFuncPtr_0209CD00 param0, u16 param1, u16 param2, u16 param3, u16 param4, u16 param5);
|
||||
typedef struct SPLGravity {
|
||||
VecFx16 mag;
|
||||
u16 reserved0;
|
||||
} SPLGravity;
|
||||
|
||||
void SPL_020A1E30(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
||||
void SPL_020A1EC4(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
||||
void SPL_020A1FE0(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
||||
void SPL_020A20B8(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
||||
void SPL_020A213C(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
||||
void SPL_020A2204(const void * param0, UnkSPLStruct8 * param1, VecFx32 * param2, struct UnkSPLStruct6_t * param3);
|
||||
typedef struct SPLRandom {
|
||||
VecFx16 mag;
|
||||
u16 intvl;
|
||||
} SPLRandom;
|
||||
|
||||
static inline void SPL_UnkInline1 (UnkSPLStruct6 * param0, const VecFx32 * param1)
|
||||
typedef struct SPLMagnet {
|
||||
VecFx32 pos;
|
||||
fx16 mag;
|
||||
u16 reserved0;
|
||||
} SPLMagnet;
|
||||
|
||||
typedef struct SPLSpin {
|
||||
u16 radian;
|
||||
u16 axis_type;
|
||||
} SPLSpin;
|
||||
|
||||
typedef struct SPLSimpleCollisionField {
|
||||
fx32 y;
|
||||
fx16 coeff_bounce;
|
||||
|
||||
struct {
|
||||
u16 eventtype : 2;
|
||||
u16 global : 1;
|
||||
u16 reserved : 13;
|
||||
} etc;
|
||||
} SPLSimpleCollisionField;
|
||||
|
||||
typedef struct SPLConvergence {
|
||||
VecFx32 pos;
|
||||
fx16 ratio;
|
||||
u16 reserved0;
|
||||
} SPLConvergence;
|
||||
|
||||
typedef struct SPLNode {
|
||||
struct SPLNode* p_next;
|
||||
struct SPLNode* p_prev;
|
||||
} SPLNode;
|
||||
|
||||
typedef struct SPLList {
|
||||
SPLNode* p_begin;
|
||||
int node_num;
|
||||
SPLNode* p_end;
|
||||
} SPLList;
|
||||
|
||||
void SPL_0209C400(SPLManager * param0);
|
||||
void SPL_0209C444(SPLManager * param0, SPLEmitter * param1);
|
||||
SPLEmitter * SPL_0209C4D8(SPLManager * param0, int param1, void (* param2)(struct SPLEmitter_t *));
|
||||
void SPL_0209C5E0(SPLManager * param0, const MtxFx43 * param1);
|
||||
SPLEmitter * SPL_0209C56C(SPLManager * param0, int param1, const VecFx32 * param2);
|
||||
void SPL_0209C6A8(SPLManager * param0);
|
||||
BOOL SPL_0209C7E0(SPLManager * param0);
|
||||
BOOL SPL_0209C7F4(SPLManager * param0);
|
||||
BOOL SPL_0209C808(SPLManager * param0, u32 (* param1)(u32, BOOL));
|
||||
BOOL SPL_0209C8BC(SPLManager * param0, u32 (* param1)(u32, BOOL));
|
||||
void SPL_0209C988(SPLManager * param0, const void * param1);
|
||||
SPLManager * SPL_0209CD00(UnkFuncPtr_0209CD00 param0, u16 param1, u16 param2, u16 param3, u16 param4, u16 param5);
|
||||
|
||||
void SPL_020A1E30(const void * param0, SPLParticle * param1, VecFx32 * param2, struct SPLEmitter_t * param3);
|
||||
void SPL_020A1EC4(const void * param0, SPLParticle * param1, VecFx32 * param2, struct SPLEmitter_t * param3);
|
||||
void SPL_020A1FE0(const void * param0, SPLParticle * param1, VecFx32 * param2, struct SPLEmitter_t * param3);
|
||||
void SPL_020A20B8(const void * param0, SPLParticle * param1, VecFx32 * param2, struct SPLEmitter_t * param3);
|
||||
void SPL_020A213C(const void * param0, SPLParticle * param1, VecFx32 * param2, struct SPLEmitter_t * param3);
|
||||
void SPL_020A2204(const void * param0, SPLParticle * param1, VecFx32 * param2, struct SPLEmitter_t * param3);
|
||||
|
||||
void sub_0209D998(SPLEmitter *emtr, UnkSPLStruct4 *res, const VecFx32 *param2);
|
||||
void sub_0209CF00(SPLManager *mgr);
|
||||
void sub_0209D150(SPLManager *mgr, SPLEmitter *emtr);
|
||||
|
||||
SPLNode *sub_020A22B8(SPLList *list);
|
||||
void sub_020A2304(SPLList *list, SPLNode *node);
|
||||
SPLNode *sub_020A2238(SPLList *list, SPLNode *node);
|
||||
|
||||
u32 sub_0209CE90(u32 param0, BOOL param1);
|
||||
u32 sub_0209CEB4(u32 param0, BOOL param1);
|
||||
|
||||
void sub_0209D064(SPLManager *mgr);
|
||||
void sub_0209CF7C(SPLManager *mgr);
|
||||
|
||||
typedef void(*DrawFunc)(SPLManager *mgr, SPLParticle *ptcl);
|
||||
typedef void(*SetTexFunc)(UnkSPLStruct5 *tex);
|
||||
|
||||
void sub_0209FAB8(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_chld_bb
|
||||
void sub_0209ECF0(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_chld_dbb
|
||||
void sub_0209E650(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_chld_pol
|
||||
void sub_0209DD54(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_chld_dpl
|
||||
|
||||
void sub_0209FF0C(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_bb
|
||||
void sub_0209F3D0(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_dbb
|
||||
void sub_0209E9A0(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_pol
|
||||
void sub_0209E1D4(SPLManager *mgr, SPLParticle *ptcl); // spl_draw_dpl
|
||||
|
||||
void sub_0209DC68(UnkSPLStruct5 *tex); // spl_set_tex
|
||||
void sub_0209DC64(UnkSPLStruct5 *tex); // spl_set_tex_dummy
|
||||
|
||||
static inline void SPL_UnkInline1 (SPLEmitter * param0, const VecFx32 * param1)
|
||||
{
|
||||
param0->unk_98.x = param1->x + param0->unk_90->unk_00->unk_04.x;
|
||||
param0->unk_98.y = param1->y + param0->unk_90->unk_00->unk_04.y;
|
||||
param0->unk_98.z = param1->z + param0->unk_90->unk_00->unk_04.z;
|
||||
param0->unk_98.x = param1->x + param0->p_res->unk_00->unk_04.x;
|
||||
param0->unk_98.y = param1->y + param0->p_res->unk_00->unk_04.y;
|
||||
param0->unk_98.z = param1->z + param0->p_res->unk_00->unk_04.z;
|
||||
}
|
||||
|
||||
static inline void SPL_UnkInline2 (UnkSPLStruct6 * param0, fx32 param1)
|
||||
static inline void SPL_UnkInline2 (SPLEmitter * param0, fx32 param1)
|
||||
{
|
||||
param0->unk_98.x = param1 + param0->unk_90->unk_00->unk_04.x;
|
||||
param0->unk_98.x = param1 + param0->p_res->unk_00->unk_04.x;
|
||||
}
|
||||
|
||||
static inline void SPL_UnkInline3 (UnkSPLStruct6 * param0, fx32 param1)
|
||||
static inline void SPL_UnkInline3 (SPLEmitter * param0, fx32 param1)
|
||||
{
|
||||
param0->unk_98.y = param1 + param0->unk_90->unk_00->unk_04.y;
|
||||
param0->unk_98.y = param1 + param0->p_res->unk_00->unk_04.y;
|
||||
}
|
||||
|
||||
static inline void SPL_UnkInline4 (UnkSPLStruct6 * param0, fx32 param1)
|
||||
static inline void SPL_UnkInline4 (SPLEmitter * param0, fx32 param1)
|
||||
{
|
||||
param0->unk_98.z = param1 + param0->unk_90->unk_00->unk_04.z;
|
||||
param0->unk_98.z = param1 + param0->p_res->unk_00->unk_04.z;
|
||||
}
|
||||
|
||||
static inline void SPL_UnkInline5 (UnkSPLStruct6 * param0, const VecFx16 * param1)
|
||||
static inline void SPL_UnkInline5 (SPLEmitter * param0, const VecFx16 * param1)
|
||||
{
|
||||
param0->unk_C0 = *param1;
|
||||
}
|
||||
|
||||
extern u32 Unk_021C3A38;
|
||||
|
||||
static inline u32 rng_next(u32 shift)
|
||||
{
|
||||
Unk_021C3A38 = Unk_021C3A38 * 0x5eedf715 + 0x1b0cb173;
|
||||
return Unk_021C3A38 >> shift;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -1,12 +1,12 @@
|
||||
libspl_srcs = files(
|
||||
'asm/unk_0209C400.s',
|
||||
'asm/unk_0209CF00.s',
|
||||
'src/unk_0209C400.c',
|
||||
'src/unk_0209CF00.c',
|
||||
'asm/unk_0209DD54.s',
|
||||
'asm/unk_020A05BC.s',
|
||||
'asm/unk_020A19F0.s',
|
||||
'asm/unk_020A1E30.s',
|
||||
'asm/unk_020A2238.s',
|
||||
'asm/unk_020A2354.s'
|
||||
'src/unk_020A05BC.c',
|
||||
'src/unk_020A19F0.c',
|
||||
'src/unk_020A1E30.c',
|
||||
'src/unk_020A2238.c',
|
||||
'src/unk_020A2354.c'
|
||||
)
|
||||
|
||||
libspl_public_includes = include_directories('include')
|
||||
|
495
lib/spl/src/unk_0209C400.c
Normal file
495
lib/spl/src/unk_0209C400.c
Normal file
@ -0,0 +1,495 @@
|
||||
#include "spl.h"
|
||||
|
||||
#include <nnsys/gfd/VramManager/gfd_PlttVramMan_Types.h>
|
||||
#include <nnsys/gfd/VramManager/gfd_TexVramMan_Types.h>
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
void SPL_0209C400(SPLManager *p0)
|
||||
{
|
||||
SPLEmitter *next;
|
||||
SPLEmitter *emtr = p0->unk_04.unk_00;
|
||||
|
||||
while (emtr != NULL) {
|
||||
next = emtr->unk_00;
|
||||
SPL_0209C444(p0, emtr);
|
||||
emtr = next;
|
||||
}
|
||||
}
|
||||
|
||||
void SPL_0209C444(SPLManager *p0, SPLEmitter *p1)
|
||||
{
|
||||
SPLEmitter *v0 = (SPLEmitter *)sub_020A22B8((SPLList *)&p1->unk_08);
|
||||
if (v0 != NULL) {
|
||||
do {
|
||||
sub_020A2304((SPLList *)&p0->unk_1C, (SPLNode *)v0);
|
||||
v0 = (SPLEmitter *)sub_020A22B8((SPLList *)&p1->unk_08);
|
||||
} while (v0 != NULL);
|
||||
}
|
||||
v0 = (SPLEmitter *)sub_020A22B8((SPLList *)&p1->unk_4C);
|
||||
if (v0 != NULL) {
|
||||
do {
|
||||
sub_020A2304((SPLList *)&p0->unk_1C, (SPLNode *)v0);
|
||||
v0 = (SPLEmitter *)sub_020A22B8((SPLList *)&p1->unk_4C);
|
||||
} while (v0 != NULL);
|
||||
}
|
||||
sub_020A2238((SPLList *)&p0->unk_04, (SPLNode *)p1);
|
||||
sub_020A2304((SPLList *)&p0->unk_10, (SPLNode *)p1);
|
||||
}
|
||||
|
||||
SPLEmitter * SPL_0209C4D8(SPLManager *mgr, int resno, void(*fpcb)(SPLEmitter*))
|
||||
{
|
||||
SPLEmitter *emtr;
|
||||
|
||||
emtr = NULL;
|
||||
if (mgr->unk_10.unk_00 != NULL) {
|
||||
VecFx32 v0 = { 0, 0, 0 };
|
||||
emtr = (SPLEmitter*)sub_020A22B8((SPLList *)&mgr->unk_10);
|
||||
sub_0209D998(emtr, mgr->unk_28 + resno, &v0);
|
||||
if (fpcb != NULL) {
|
||||
fpcb(emtr);
|
||||
}
|
||||
sub_020A2304((SPLList *)&mgr->unk_04, (SPLNode *)emtr);
|
||||
if (emtr->p_res->unk_00->unk_00.unk_05_6) {
|
||||
emtr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return emtr;
|
||||
}
|
||||
|
||||
SPLEmitter *SPL_0209C56C(SPLManager *mgr, int resno, const VecFx32 *pos)
|
||||
{
|
||||
SPLEmitter *emtr = NULL;
|
||||
|
||||
if (mgr->unk_10.unk_00 != NULL) {
|
||||
emtr = (SPLEmitter *)sub_020A22B8((SPLList *)&mgr->unk_10);
|
||||
sub_0209D998(emtr, mgr->unk_28 + resno, pos);
|
||||
sub_020A2304((SPLList *)&mgr->unk_04, (SPLNode *)emtr);
|
||||
if (emtr->p_res->unk_00->unk_00.unk_05_6) {
|
||||
emtr = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return emtr;
|
||||
}
|
||||
|
||||
void SPL_0209C5E0(SPLManager *mgr, const MtxFx43 *cmr)
|
||||
{
|
||||
SPLEmitter *emtr;
|
||||
|
||||
reg_G3X_DISP3DCNT = (reg_G3X_DISP3DCNT & ~(REG_G3X_DISP3DCNT_GO_MASK | REG_G3X_DISP3DCNT_RO_MASK)) | REG_G3X_DISP3DCNT_ABE_MASK;
|
||||
mgr->unk_40.unk_04 = cmr;
|
||||
if (!mgr->unk_38.unk_03_0) {
|
||||
emtr = mgr->unk_04.unk_00;
|
||||
|
||||
while (emtr != NULL) {
|
||||
mgr->unk_40.unk_00 = emtr;
|
||||
if (!emtr->unk_94.stop_draw) {
|
||||
sub_0209CF00(mgr);
|
||||
}
|
||||
emtr = emtr->unk_00;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
emtr = mgr->unk_04.unk_08;
|
||||
while (emtr != NULL) {
|
||||
mgr->unk_40.unk_00 = emtr;
|
||||
if (!emtr->unk_94.stop_draw) {
|
||||
sub_0209CF00(mgr);
|
||||
}
|
||||
emtr = emtr->unk_04;
|
||||
}
|
||||
}
|
||||
|
||||
void SPL_0209C6A8(SPLManager *mgr)
|
||||
{
|
||||
SPLEmitter *emtr;
|
||||
SPLEmitter *next;
|
||||
|
||||
emtr = mgr->unk_04.unk_00;
|
||||
while (emtr != NULL) {
|
||||
UnkSPLStruct9 *base = emtr->p_res->unk_00;
|
||||
next = emtr->unk_00;
|
||||
|
||||
if (!emtr->unk_94.started && emtr->unk_BC >= base->unk_32) {
|
||||
emtr->unk_94.started = TRUE;
|
||||
emtr->unk_BC = 0;
|
||||
}
|
||||
|
||||
if (!emtr->unk_94.stop_calc) {
|
||||
if (emtr->unk_F0.unk_02_0 == 0 || mgr->unk_48 == emtr->unk_F0.unk_02_0 - 1) {
|
||||
sub_0209D150(mgr, emtr);
|
||||
}
|
||||
}
|
||||
|
||||
if (((base->unk_00.unk_05_6 && base->unk_3C != 0 && emtr->unk_94.started && emtr->unk_BC > base->unk_3C)
|
||||
|| emtr->unk_94.terminate) && emtr->unk_08.unk_04 == 0 && emtr->unk_4C.unk_04 == 0) {
|
||||
SPLEmitter *e0 = (SPLEmitter *)sub_020A2238((SPLList *)&mgr->unk_04, (SPLNode *)emtr);
|
||||
sub_020A2304((SPLList *)&mgr->unk_10, (SPLNode *)e0);
|
||||
}
|
||||
|
||||
emtr = next;
|
||||
}
|
||||
|
||||
mgr->unk_48 += 1;
|
||||
if (mgr->unk_48 > 1) {
|
||||
mgr->unk_48 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int SPL_0209C7E0(SPLManager *mgr)
|
||||
{
|
||||
return SPL_0209C808(mgr, sub_0209CE90);
|
||||
}
|
||||
|
||||
int SPL_0209C7F4(SPLManager *mgr)
|
||||
{
|
||||
return SPL_0209C8BC(mgr, sub_0209CEB4);
|
||||
}
|
||||
|
||||
BOOL SPL_0209C808(SPLManager *mgr, u32 (*func)(u32, BOOL))
|
||||
{
|
||||
s32 i;
|
||||
UnkSPLStruct5 *tex;
|
||||
UnkSPLStruct15 *hdr;
|
||||
u32 ofs;
|
||||
|
||||
GX_BeginLoadTexPltt();
|
||||
|
||||
for (i = 0; i < mgr->unk_32; i++) {
|
||||
ofs = 0;
|
||||
tex = &mgr->unk_2C[i];
|
||||
hdr = (UnkSPLStruct15 *)tex->unk_00;
|
||||
|
||||
if (hdr->unk_10 != 0) {
|
||||
ofs = func(hdr->unk_10, hdr->unk_04.val2_00_0 == 2);
|
||||
GX_LoadTexPltt((u8 *)tex->unk_00 + hdr->unk_0C, ofs, hdr->unk_10);
|
||||
}
|
||||
|
||||
tex->unk_08 = ofs;
|
||||
}
|
||||
|
||||
GX_EndLoadTexPltt();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL SPL_0209C8BC(SPLManager *mgr, u32 (*func)(u32, BOOL))
|
||||
{
|
||||
int i;
|
||||
u32 addr;
|
||||
|
||||
GX_BeginLoadTex();
|
||||
|
||||
for (i = 0; i < mgr->unk_32; i++) {
|
||||
UnkSPLStruct5 *textures = mgr->unk_2C;
|
||||
UnkSPLStruct5 *tex = &textures[i];
|
||||
UnkSPLStruct15 *hdr = (UnkSPLStruct15 *)tex->unk_00;
|
||||
|
||||
if (hdr->unk_04.val2_02_1) {
|
||||
tex->unk_04 = textures[hdr->unk_04.val2_02_2].unk_04;
|
||||
} else {
|
||||
addr = func(hdr->unk_08, hdr->unk_04.val2_00_0 == 5);
|
||||
GX_LoadTex(((UnkSPLStruct15 *)tex->unk_00) + 1, addr, hdr->unk_08);
|
||||
tex->unk_04 = addr;
|
||||
}
|
||||
}
|
||||
|
||||
GX_EndLoadTex();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
asm static void SPL_0209C988(SPLManager *mgr, void *spa)
|
||||
{
|
||||
stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x2c
|
||||
mov sb, r1
|
||||
ldrh r1, [sb, #8]
|
||||
mov sl, r0
|
||||
mov r8, #0x20
|
||||
strh r1, [sl, #0x30]
|
||||
ldrh r0, [sb, #0xa]
|
||||
strh r0, [sl, #0x32]
|
||||
ldrh r0, [sl, #0x30]
|
||||
ldr r1, [sl]
|
||||
mov r0, r0, lsl #5
|
||||
blx r1
|
||||
str r0, [sl, #0x28]
|
||||
ldrh r2, [sl, #0x30]
|
||||
ldr r0, [sl, #0x28]
|
||||
mov r1, #0
|
||||
mov r2, r2, lsl #5
|
||||
bl MI_CpuFill8
|
||||
ldrh r1, [sl, #0x30]
|
||||
mov r0, #0
|
||||
str r0, [sp]
|
||||
cmp r1, #0
|
||||
ble _0209CC28
|
||||
mov r6, r0
|
||||
str r0, [sp, #0x10]
|
||||
str r0, [sp, #0x14]
|
||||
str r0, [sp, #0x18]
|
||||
str r0, [sp, #0x1c]
|
||||
str r0, [sp, #0x20]
|
||||
str r0, [sp, #0x24]
|
||||
_0209CA04:
|
||||
ldr r1, [sl, #0x28]
|
||||
add r0, sb, r8
|
||||
str r0, [r1, r6]
|
||||
ldr r0, [r1, r6]
|
||||
add r8, r8, #0x58
|
||||
ldr r0, [r0, #0]
|
||||
add r7, r1, r6
|
||||
str r0, [sp, #0x28]
|
||||
mov r0, r0, lsl #0x17
|
||||
movs r0, r0, lsr #0x1f
|
||||
addne r0, sb, r8
|
||||
strne r0, [r7, #4]
|
||||
ldreq r0, [sp, #0x10]
|
||||
addne r8, r8, #0xc
|
||||
streq r0, [r7, #4]
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r0, r0, lsl #0x16
|
||||
movs r0, r0, lsr #0x1f
|
||||
addne r0, sb, r8
|
||||
strne r0, [r7, #8]
|
||||
ldreq r0, [sp, #0x14]
|
||||
addne r8, r8, #0xc
|
||||
streq r0, [r7, #8]
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r0, r0, lsl #0x15
|
||||
movs r0, r0, lsr #0x1f
|
||||
addne r0, sb, r8
|
||||
strne r0, [r7, #0xc]
|
||||
ldreq r0, [sp, #0x18]
|
||||
addne r8, r8, #8
|
||||
streq r0, [r7, #0xc]
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r0, r0, lsl #0x14
|
||||
movs r0, r0, lsr #0x1f
|
||||
addne r0, sb, r8
|
||||
strne r0, [r7, #0x10]
|
||||
ldreq r0, [sp, #0x1c]
|
||||
addne r8, r8, #0xc
|
||||
streq r0, [r7, #0x10]
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r0, r0, lsl #0xf
|
||||
movs r0, r0, lsr #0x1f
|
||||
addne r0, sb, r8
|
||||
strne r0, [r7, #0x14]
|
||||
ldreq r0, [sp, #0x20]
|
||||
addne r8, r8, #0x14
|
||||
streq r0, [r7, #0x14]
|
||||
ldr r0, [sp, #0x28]
|
||||
mov r1, r0, lsl #7
|
||||
mov r2, r0, lsl #6
|
||||
mov r5, r1, lsr #0x1f
|
||||
mov r4, r2, lsr #0x1f
|
||||
add r1, r5, r2, lsr #31
|
||||
mov r2, r0, lsl #5
|
||||
add r1, r1, r2, lsr #31
|
||||
mov r3, r0, lsl #4
|
||||
mov fp, r2, lsr #0x1f
|
||||
add r2, r1, r3, lsr #31
|
||||
mov r1, r3, lsr #0x1f
|
||||
mov ip, r0, lsl #3
|
||||
str r1, [sp, #4]
|
||||
mov r3, r0, lsl #2
|
||||
mov r0, ip, lsr #0x1f
|
||||
add r1, r2, ip, lsr #31
|
||||
str r0, [sp, #8]
|
||||
add r0, r1, r3, lsr #31
|
||||
strh r0, [r7, #0x1c]
|
||||
mov r0, r3, lsr #0x1f
|
||||
str r0, [sp, #0xc]
|
||||
ldrh r0, [r7, #0x1c]
|
||||
cmp r0, #0
|
||||
beq _0209CC04
|
||||
mov r0, r0, lsl #3
|
||||
ldr r1, [sl]
|
||||
blx r1
|
||||
str r0, [r7, #0x18]
|
||||
cmp r5, #0
|
||||
ldr r0, [r7, #0x18]
|
||||
beq _0209CB58
|
||||
add r1, sb, r8
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _0209CCE8
|
||||
add r8, r8, #8
|
||||
str r1, [r0, #0]
|
||||
add r0, r0, #8
|
||||
_0209CB58:
|
||||
cmp r4, #0
|
||||
beq _0209CB78
|
||||
add r1, sb, r8
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _0209CCEC
|
||||
add r8, r8, #8
|
||||
str r1, [r0, #0]
|
||||
add r0, r0, #8
|
||||
_0209CB78:
|
||||
cmp fp, #0
|
||||
beq _0209CB98
|
||||
add r1, sb, r8
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _0209CCF0
|
||||
add r8, r8, #0x10
|
||||
str r1, [r0, #0]
|
||||
add r0, r0, #8
|
||||
_0209CB98:
|
||||
ldr r1, [sp, #4]
|
||||
cmp r1, #0
|
||||
beq _0209CBBC
|
||||
add r1, sb, r8
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _0209CCF4
|
||||
add r8, r8, #4
|
||||
str r1, [r0, #0]
|
||||
add r0, r0, #8
|
||||
_0209CBBC:
|
||||
ldr r1, [sp, #8]
|
||||
cmp r1, #0
|
||||
beq _0209CBE0
|
||||
add r1, sb, r8
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _0209CCF8
|
||||
add r8, r8, #8
|
||||
str r1, [r0, #0]
|
||||
add r0, r0, #8
|
||||
_0209CBE0:
|
||||
ldr r1, [sp, #0xc]
|
||||
cmp r1, #0
|
||||
beq _0209CC0C
|
||||
add r1, sb, r8
|
||||
str r1, [r0, #4]
|
||||
ldr r1, _0209CCFC
|
||||
add r8, r8, #0x10
|
||||
str r1, [r0, #0]
|
||||
b _0209CC0C
|
||||
_0209CC04:
|
||||
ldr r0, [sp, #0x24]
|
||||
str r0, [r7, #0x18]
|
||||
_0209CC0C:
|
||||
ldr r0, [sp]
|
||||
ldrh r1, [sl, #0x30]
|
||||
add r0, r0, #1
|
||||
add r6, r6, #0x20
|
||||
str r0, [sp]
|
||||
cmp r0, r1
|
||||
blt _0209CA04
|
||||
_0209CC28:
|
||||
ldrh r2, [sl, #0x32]
|
||||
mov r0, #0x14
|
||||
ldr r1, [sl]
|
||||
mul r0, r2, r0
|
||||
blx r1
|
||||
str r0, [sl, #0x2c]
|
||||
ldrh r3, [sl, #0x32]
|
||||
mov r1, #0x14
|
||||
ldr r0, [sl, #0x2c]
|
||||
mul r2, r3, r1
|
||||
mov r1, #0
|
||||
bl MI_CpuFill8
|
||||
ldrh r0, [sl, #0x32]
|
||||
mov r3, #0
|
||||
cmp r0, #0
|
||||
addle sp, sp, #0x2c
|
||||
ldmleia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
bxle lr
|
||||
mov r4, r3
|
||||
mov r0, #1
|
||||
_0209CC78:
|
||||
ldr r2, [sl, #0x2c]
|
||||
add r1, sb, r8
|
||||
str r1, [r2, r4]
|
||||
ldr r5, [r1, #4]
|
||||
add r2, r2, r4
|
||||
mov r5, r5, lsl #0x18
|
||||
mov r5, r5, lsr #0x1c
|
||||
add r5, r5, #3
|
||||
mov r5, r0, lsl r5
|
||||
strh r5, [r2, #0x10]
|
||||
ldr r5, [r1, #4]
|
||||
add r3, r3, #1
|
||||
mov r5, r5, lsl #0x14
|
||||
mov r5, r5, lsr #0x1c
|
||||
add r5, r5, #3
|
||||
mov r5, r0, lsl r5
|
||||
strh r5, [r2, #0x12]
|
||||
ldr r5, [r1, #4]
|
||||
add r4, r4, #0x14
|
||||
str r5, [r2, #0xc]
|
||||
ldrh r2, [sl, #0x32]
|
||||
ldr r1, [r1, #0x1c]
|
||||
cmp r3, r2
|
||||
add r8, r8, r1
|
||||
blt _0209CC78
|
||||
add sp, sp, #0x2c
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
bx lr
|
||||
}
|
||||
|
||||
SPLManager *SPL_0209CD00(void *(*alloc)(u32), u16 max_emtr, u16 max_ptcl, u16 fixPolyID, u16 minPolyID, u16 maxPolyID)
|
||||
{
|
||||
SPLManager *mgr;
|
||||
SPLEmitter *emtr;
|
||||
SPLParticle *ptcl;
|
||||
int i;
|
||||
|
||||
mgr = alloc(sizeof(SPLManager));
|
||||
MI_CpuFill8(mgr, 0, sizeof(SPLManager));
|
||||
|
||||
mgr->unk_34 = max_emtr;
|
||||
mgr->unk_36 = max_ptcl;
|
||||
|
||||
mgr->unk_38.unk_00_0 = minPolyID;
|
||||
mgr->unk_38.unk_00_6 = maxPolyID;
|
||||
mgr->unk_38.unk_01_4 = mgr->unk_38.unk_00_0;
|
||||
mgr->unk_38.unk_02_2 = fixPolyID;
|
||||
mgr->unk_38.unk_03_0 = FALSE;
|
||||
mgr->unk_38.unk_03_7 = 0;
|
||||
|
||||
mgr->unk_00 = alloc;
|
||||
|
||||
mgr->unk_04.unk_04 = 0;
|
||||
mgr->unk_10.unk_04 = 0;
|
||||
mgr->unk_1C.unk_04 = 0;
|
||||
|
||||
mgr->unk_04.unk_00 = NULL;
|
||||
mgr->unk_10.unk_00 = NULL;
|
||||
mgr->unk_1C.unk_00 = NULL;
|
||||
|
||||
mgr->unk_3C = 0;
|
||||
mgr->unk_48 = 0;
|
||||
|
||||
emtr = alloc(max_emtr * sizeof(SPLEmitter));
|
||||
MI_CpuFill8(emtr, 0, max_emtr * sizeof(SPLEmitter));
|
||||
|
||||
for (i = 0; i < max_emtr; ++i) {
|
||||
sub_020A2304((SPLList *)&mgr->unk_10, (SPLNode *)&emtr[i]);
|
||||
}
|
||||
|
||||
ptcl = alloc(max_ptcl * sizeof(SPLParticle));
|
||||
MI_CpuFill8(ptcl, 0, max_ptcl * sizeof(SPLParticle));
|
||||
|
||||
for (i = 0; i < max_ptcl; ++i) {
|
||||
sub_020A2304((SPLList *)&mgr->unk_1C, (SPLNode *)&ptcl[i]);
|
||||
}
|
||||
|
||||
mgr->unk_28 = NULL;
|
||||
mgr->unk_2C = NULL;
|
||||
mgr->unk_30 = mgr->unk_32 = 0;
|
||||
|
||||
return mgr;
|
||||
}
|
||||
|
||||
u32 sub_0209CE90(u32 size, BOOL is4Pltt)
|
||||
{
|
||||
return (NNS_GfdAllocPlttVram(size, is4Pltt, 0) & 0xFFFF) * 8;
|
||||
}
|
||||
|
||||
u32 sub_0209CEC8(u32 size, BOOL is4x4)
|
||||
{
|
||||
return (NNS_GfdAllocTexVram(size, is4x4, 0) & 0xFFFF) * 8;
|
||||
}
|
780
lib/spl/src/unk_0209CF00.c
Normal file
780
lib/spl/src/unk_0209CF00.c
Normal file
@ -0,0 +1,780 @@
|
||||
#include "spl.h"
|
||||
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
|
||||
void sub_0209CF00(SPLManager *mgr)
|
||||
{
|
||||
UnkSPLStruct9 *resBase;
|
||||
|
||||
resBase = mgr->unk_40.unk_00->p_res->unk_00;
|
||||
if (resBase->unk_00.unk_06_5) {
|
||||
sub_0209CF7C(mgr);
|
||||
|
||||
if (!resBase->unk_00.unk_06_6) {
|
||||
sub_0209D064(mgr);
|
||||
}
|
||||
} else {
|
||||
if (!resBase->unk_00.unk_06_6) {
|
||||
sub_0209D064(mgr);
|
||||
}
|
||||
|
||||
sub_0209CF7C(mgr);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0209CF7C(SPLManager *mgr)
|
||||
{
|
||||
SPLEmitter *emtr;
|
||||
UnkSPLStruct4 *res;
|
||||
DrawFunc drawFunc;
|
||||
SPLParticle *ptcl;
|
||||
|
||||
emtr = mgr->unk_40.unk_00;
|
||||
drawFunc = NULL;
|
||||
res = emtr->p_res;
|
||||
|
||||
if (!res->unk_00->unk_00.unk_06_0) {
|
||||
return;
|
||||
}
|
||||
|
||||
sub_0209DC68(mgr->unk_2C + res->unk_14->unk_0C.unk_03_0);
|
||||
|
||||
switch (res->unk_14->unk_00.unk_02_7) {
|
||||
case 0: drawFunc = sub_0209FAB8; break;
|
||||
case 1: drawFunc = sub_0209ECF0; break;
|
||||
case 2: drawFunc = sub_0209E650; break;
|
||||
case 3: drawFunc = sub_0209DD54; break;
|
||||
case 4: drawFunc = sub_0209DD54; break;
|
||||
}
|
||||
|
||||
ptcl = emtr->unk_4C.unk_00;
|
||||
while (ptcl != NULL) {
|
||||
drawFunc(mgr, ptcl);
|
||||
ptcl = ptcl->unk_00;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_0209D064(SPLManager *mgr)
|
||||
{
|
||||
SPLEmitter *emtr;
|
||||
UnkSPLStruct9 *resBase;
|
||||
SPLParticle *ptcl;
|
||||
DrawFunc drawFunc;
|
||||
SetTexFunc setTexFunc;
|
||||
|
||||
emtr = mgr->unk_40.unk_00;
|
||||
resBase = emtr->p_res->unk_00;
|
||||
drawFunc = NULL;
|
||||
|
||||
sub_0209DC68(mgr->unk_2C + resBase->unk_48.unk_03_0);
|
||||
|
||||
switch (resBase->unk_00.unk_04_4) {
|
||||
case 0: drawFunc = sub_0209FF0C; break;
|
||||
case 1: drawFunc = sub_0209F3D0; break;
|
||||
case 2: drawFunc = sub_0209E9A0; break;
|
||||
case 3: drawFunc = sub_0209E1D4; break;
|
||||
case 4: drawFunc = sub_0209E1D4; break;
|
||||
}
|
||||
|
||||
setTexFunc = resBase->unk_00.unk_05_3 ? sub_0209DC68 : sub_0209DC64;
|
||||
ptcl = emtr->unk_08.unk_00;
|
||||
|
||||
while (ptcl != NULL) {
|
||||
setTexFunc(mgr->unk_2C + ptcl->unk_2C.unk_00);
|
||||
drawFunc(mgr, ptcl);
|
||||
ptcl = ptcl->unk_00;
|
||||
}
|
||||
}
|
||||
|
||||
asm void sub_0209D150(SPLManager *mgr, SPLEmitter *emtr)
|
||||
{
|
||||
stmfd sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
sub sp, sp, #0x74
|
||||
mov sb, r1
|
||||
ldr r8, [sb, #0x20]
|
||||
mov sl, r0
|
||||
ldr r0, [r8, #0x14]
|
||||
ldr r4, [r8]
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [r4, #0]
|
||||
mov r6, #0
|
||||
str r0, [sp, #0x24]
|
||||
ldrb r0, [r4, #0x46]
|
||||
ldr r2, [sb, #0x90]
|
||||
ldrh r7, [r8, #0x1c]
|
||||
add r0, r0, #0x180
|
||||
cmp r2, #0
|
||||
str r0, [sp, #8]
|
||||
beq _0209D1A4
|
||||
mov r0, sb
|
||||
mov r1, r6
|
||||
blx r2
|
||||
_0209D1A4:
|
||||
ldrh r1, [r4, #0x3c]
|
||||
cmp r1, #0
|
||||
beq _0209D1BC
|
||||
ldrh r0, [sb, #0x4c]
|
||||
cmp r0, r1
|
||||
bhs _0209D204
|
||||
_0209D1BC:
|
||||
ldrh r0, [sb, #0x4c]
|
||||
ldrb r1, [sb, #0x80]
|
||||
bl _s32_div_f
|
||||
cmp r1, #0
|
||||
bne _0209D204
|
||||
ldr r1, [sb, #0x24]
|
||||
mov r0, r1, lsl #0x1f
|
||||
movs r0, r0, lsr #0x1f
|
||||
bne _0209D204
|
||||
mov r0, r1, lsl #0x1e
|
||||
movs r0, r0, lsr #0x1f
|
||||
bne _0209D204
|
||||
mov r0, r1, lsl #0x1b
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D204
|
||||
mov r0, sb
|
||||
add r1, sl, #0x1c
|
||||
bl sub_020A08DC
|
||||
_0209D204:
|
||||
ldr r0, [sp, #0x24]
|
||||
mov r0, r0, lsl #0x17
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D234
|
||||
ldr r0, _0209D980 // =sub_020A1DA0
|
||||
add r6, r6, #1
|
||||
str r0, [sp, #0x28]
|
||||
ldr r0, [r8, #4]
|
||||
ldrh r0, [r0, #8]
|
||||
mov r0, r0, lsl #0x1f
|
||||
mov r0, r0, lsr #0x1f
|
||||
str r0, [sp, #0x2c]
|
||||
_0209D234:
|
||||
ldr r0, [sp, #0x24]
|
||||
mov r0, r0, lsl #0x16
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D280
|
||||
ldr r3, [r8, #8]
|
||||
ldrh r0, [r3, #8]
|
||||
mov r0, r0, lsl #0x1f
|
||||
movs r0, r0, lsr #0x1f
|
||||
bne _0209D280
|
||||
ldr r2, _0209D984 // =sub_020A1BD4
|
||||
add r1, sp, #0x28
|
||||
str r2, [r1, r6, lsl #3]
|
||||
ldrh r1, [r3, #8]
|
||||
mov r2, r6, lsl #3
|
||||
add r0, sp, #0x2c
|
||||
mov r1, r1, lsl #0x1e
|
||||
mov r1, r1, lsr #0x1f
|
||||
add r6, r6, #1
|
||||
str r1, [r0, r2]
|
||||
_0209D280:
|
||||
ldr r0, [sp, #0x24]
|
||||
mov r0, r0, lsl #0x15
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D2BC
|
||||
ldr r2, _0209D988 // =sub_020A1AF8
|
||||
add r1, sp, #0x28
|
||||
str r2, [r1, r6, lsl #3]
|
||||
ldr r1, [r8, #0xc]
|
||||
mov r2, r6, lsl #3
|
||||
ldrh r1, [r1, #2]
|
||||
add r0, sp, #0x2c
|
||||
add r6, r6, #1
|
||||
mov r1, r1, lsl #0x17
|
||||
mov r1, r1, lsr #0x1f
|
||||
str r1, [r0, r2]
|
||||
_0209D2BC:
|
||||
ldr r0, [sp, #0x24]
|
||||
mov r0, r0, lsl #0x14
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D304
|
||||
ldr r3, [r8, #0x10]
|
||||
ldr r0, [r3, #8]
|
||||
mov r0, r0, lsl #0xf
|
||||
movs r0, r0, lsr #0x1f
|
||||
bne _0209D304
|
||||
ldr r2, _0209D98C // =sub_020A1A94
|
||||
add r1, sp, #0x28
|
||||
str r2, [r1, r6, lsl #3]
|
||||
ldr r1, [r3, #8]
|
||||
add r0, sp, #0x2c
|
||||
mov r1, r1, lsl #0xe
|
||||
mov r1, r1, lsr #0x1f
|
||||
str r1, [r0, r6, lsl #3]
|
||||
add r6, r6, #1
|
||||
_0209D304:
|
||||
ldr r4, [sb, #8]
|
||||
cmp r4, #0
|
||||
beq _0209D640
|
||||
ldr r0, [sp, #0x24]
|
||||
add fp, sp, #0x28
|
||||
mov r2, r0, lsl #0x10
|
||||
mov r1, r0, lsl #0xf
|
||||
mov r0, r2, lsr #0x1f
|
||||
str r0, [sp, #0xc]
|
||||
mov r0, r1, lsr #0x1f
|
||||
str r0, [sp, #0x10]
|
||||
mov r0, #0
|
||||
str r0, [sp, #0x18]
|
||||
_0209D338:
|
||||
ldr r0, [r4, #0]
|
||||
ldrh r1, [r4, #0x2a]
|
||||
str r0, [sp]
|
||||
ldrh r0, [r4, #0x26]
|
||||
cmp r6, #0
|
||||
ldr r5, [sp, #0x18]
|
||||
mul r2, r1, r0
|
||||
mov r1, r2, asr #8
|
||||
strb r1, [sp, #0x20]
|
||||
ldrh r1, [r4, #0x28]
|
||||
ldrb r2, [r4, #0x2d]
|
||||
mul r0, r1, r0
|
||||
add r0, r2, r0, asr #8
|
||||
strb r0, [sp, #0x21]
|
||||
ble _0209D3A0
|
||||
_0209D374:
|
||||
add r2, fp, r5, lsl #3
|
||||
ldr ip, [r2, #4]
|
||||
add r2, sp, #0x20
|
||||
ldrb r2, [r2, ip]
|
||||
ldr r3, [fp, r5, lsl #3]
|
||||
mov r0, r4
|
||||
mov r1, r8
|
||||
blx r3
|
||||
add r5, r5, #1
|
||||
cmp r5, r6
|
||||
blt _0209D374
|
||||
_0209D3A0:
|
||||
ldr r0, [sp, #0x18]
|
||||
ldr r5, [sp, #0x18]
|
||||
str r0, [sp, #0x70]
|
||||
str r0, [sp, #0x6c]
|
||||
str r0, [sp, #0x68]
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0
|
||||
addne r0, sb, #0x28
|
||||
addne r3, r4, #0x38
|
||||
ldmneia r0, {r0, r1, r2}
|
||||
stmneia r3, {r0, r1, r2}
|
||||
cmp r7, #0
|
||||
ble _0209D400
|
||||
_0209D3D4:
|
||||
ldr r2, [r8, #0x18]
|
||||
mov r1, r4
|
||||
add r0, r2, r5, lsl #3
|
||||
ldr ip, [r2, r5, lsl #3]
|
||||
ldr r0, [r0, #4]
|
||||
add r2, sp, #0x68
|
||||
mov r3, sb
|
||||
blx ip
|
||||
add r5, r5, #1
|
||||
cmp r5, r7
|
||||
blt _0209D3D4
|
||||
_0209D400:
|
||||
ldr r0, [sp, #0x10]
|
||||
ldrh r1, [r4, #0x20]
|
||||
cmp r0, #0
|
||||
ldrsh r0, [r4, #0x22]
|
||||
add r0, r1, r0
|
||||
strh r0, [r4, #0x20]
|
||||
ldr r1, [r4, #0x14]
|
||||
ldr r0, [sp, #8]
|
||||
mul r0, r1, r0
|
||||
mov r0, r0, asr #9
|
||||
str r0, [r4, #0x14]
|
||||
ldr r1, [r4, #0x18]
|
||||
ldr r0, [sp, #8]
|
||||
mul r0, r1, r0
|
||||
mov r0, r0, asr #9
|
||||
str r0, [r4, #0x18]
|
||||
ldr r1, [r4, #0x1c]
|
||||
ldr r0, [sp, #8]
|
||||
mul r0, r1, r0
|
||||
mov r0, r0, asr #9
|
||||
str r0, [r4, #0x1c]
|
||||
ldr r1, [r4, #0x14]
|
||||
ldr r0, [sp, #0x68]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0x14]
|
||||
ldr r1, [r4, #0x18]
|
||||
ldr r0, [sp, #0x6c]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0x18]
|
||||
ldr r1, [r4, #0x1c]
|
||||
ldr r0, [sp, #0x70]
|
||||
add r0, r1, r0
|
||||
str r0, [r4, #0x1c]
|
||||
ldr r1, [r4, #0x14]
|
||||
ldr r0, [sb, #0x34]
|
||||
ldr r2, [r4, #8]
|
||||
add r0, r1, r0
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #8]
|
||||
ldr r1, [r4, #0x18]
|
||||
ldr r0, [sb, #0x38]
|
||||
ldr r2, [r4, #0xc]
|
||||
add r0, r1, r0
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0xc]
|
||||
ldr r1, [r4, #0x1c]
|
||||
ldr r0, [sb, #0x3c]
|
||||
ldr r2, [r4, #0x10]
|
||||
add r0, r1, r0
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x10]
|
||||
beq _0209D538
|
||||
ldr r0, [sp, #4]
|
||||
ldrh r2, [r4, #0x24]
|
||||
ldrb r1, [r0, #0xd]
|
||||
ldrh r3, [r4, #0x26]
|
||||
mov r2, r2, lsl #0xc
|
||||
mov r1, r1, lsl #0xc
|
||||
mov r0, r3, lsl #0xc
|
||||
smull r5, r3, r2, r1
|
||||
mov r1, #0x800
|
||||
adds r2, r5, r1
|
||||
adc r1, r3, #0
|
||||
mov r2, r2, lsr #0xc
|
||||
orr r2, r2, r1, lsl #20
|
||||
mov r1, r2, asr #8
|
||||
subs r0, r0, r1
|
||||
bmi _0209D538
|
||||
ldr r1, [sp, #4]
|
||||
mov r0, r0, asr #0xc
|
||||
ldrb r1, [r1, #0xe]
|
||||
bl _s32_div_f
|
||||
cmp r1, #0
|
||||
bne _0209D538
|
||||
mov r0, r4
|
||||
mov r1, sb
|
||||
add r2, sl, #0x1c
|
||||
bl sub_020A05BC
|
||||
_0209D538:
|
||||
ldr r0, [sb, #0x20]
|
||||
ldr r0, [r0, #0]
|
||||
ldr r0, [r0, #0]
|
||||
mov r0, r0, lsl #1
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D57C
|
||||
ldrh r0, [r4, #0x2e]
|
||||
ldr r1, [sl, #0x38]
|
||||
bic r0, r0, #0xfc00
|
||||
mov r1, r1, lsl #8
|
||||
mov r1, r1, lsr #0x1a
|
||||
mov r1, r1, lsl #0x10
|
||||
mov r1, r1, lsr #0x10
|
||||
and r1, r1, #0x3f
|
||||
orr r0, r0, r1, lsl #10
|
||||
strh r0, [r4, #0x2e]
|
||||
b _0209D5FC
|
||||
_0209D57C:
|
||||
ldrh r0, [r4, #0x2e]
|
||||
ldr r2, [sl, #0x38]
|
||||
add r1, sl, #0x38
|
||||
bic r0, r0, #0xfc00
|
||||
mov r2, r2, lsl #0xe
|
||||
mov r2, r2, lsr #0x1a
|
||||
mov r2, r2, lsl #0x10
|
||||
mov r2, r2, lsr #0x10
|
||||
and r2, r2, #0x3f
|
||||
orr r0, r0, r2, lsl #10
|
||||
strh r0, [r4, #0x2e]
|
||||
ldr r2, [sl, #0x38]
|
||||
bic r0, r2, #0x3f000
|
||||
mov r2, r2, lsl #0xe
|
||||
mov r2, r2, lsr #0x1a
|
||||
add r2, r2, #1
|
||||
and r2, r2, #0x3f
|
||||
orr r0, r0, r2, lsl #12
|
||||
str r0, [sl, #0x38]
|
||||
ldr r2, [sl, #0x38]
|
||||
mov r0, r2, lsl #0xe
|
||||
mov r3, r0, lsr #0x1a
|
||||
mov r0, r2, lsl #0x14
|
||||
cmp r3, r0, lsr #26
|
||||
bls _0209D5FC
|
||||
mov r0, r2, lsl #0x1a
|
||||
mov r0, r0, lsr #0x1a
|
||||
and r0, r0, #0x3f
|
||||
ldr r2, [r1, #0]
|
||||
bic r2, r2, #0x3f000
|
||||
orr r0, r2, r0, lsl #12
|
||||
str r0, [r1, #0]
|
||||
_0209D5FC:
|
||||
ldrh r0, [r4, #0x26]
|
||||
add r0, r0, #1
|
||||
strh r0, [r4, #0x26]
|
||||
ldrh r1, [r4, #0x26]
|
||||
ldrh r0, [r4, #0x24]
|
||||
cmp r1, r0
|
||||
bls _0209D630
|
||||
mov r1, r4
|
||||
add r0, sb, #8
|
||||
bl sub_020A2238
|
||||
mov r1, r0
|
||||
add r0, sl, #0x1c
|
||||
bl sub_020A2304
|
||||
_0209D630:
|
||||
ldr r0, [sp]
|
||||
cmp r0, #0
|
||||
mov r4, r0
|
||||
bne _0209D338
|
||||
_0209D640:
|
||||
ldr r0, [sp, #0x24]
|
||||
mov r0, r0, lsl #0xf
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D948
|
||||
ldr r0, [sp, #4]
|
||||
mov r6, #0
|
||||
ldrh r0, [r0]
|
||||
mov r0, r0, lsl #0x1e
|
||||
movs r0, r0, lsr #0x1f
|
||||
ldrne r0, _0209D990 // =sub_020A1A48
|
||||
strne r6, [sp, #0x4c]
|
||||
strne r0, [sp, #0x48]
|
||||
ldr r0, [sp, #4]
|
||||
addne r6, r6, #1
|
||||
ldrh r0, [r0]
|
||||
mov r0, r0, lsl #0x1d
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D6A4
|
||||
ldr r2, _0209D994 // =sub_020A19F0
|
||||
add r1, sp, #0x48
|
||||
str r2, [r1, r6, lsl #3]
|
||||
add r0, sp, #0x4c
|
||||
mov r1, #0
|
||||
str r1, [r0, r6, lsl #3]
|
||||
add r6, r6, #1
|
||||
_0209D6A4:
|
||||
ldr r0, [sp, #4]
|
||||
ldr r5, [sb, #0x14]
|
||||
ldrh r0, [r0]
|
||||
mov r0, r0, lsl #0x1f
|
||||
movs r0, r0, lsr #0x1f
|
||||
moveq r7, #0
|
||||
cmp r5, #0
|
||||
beq _0209D948
|
||||
mov r0, #0
|
||||
str r0, [sp, #0x1c]
|
||||
_0209D6CC:
|
||||
ldrh r2, [r5, #0x26]
|
||||
ldr r0, [r5, #0]
|
||||
ldrh r1, [r5, #0x24]
|
||||
str r0, [sp, #0x14]
|
||||
mov r0, r2, lsl #8
|
||||
bl _s32_div_f
|
||||
ldr r4, [sp, #0x1c]
|
||||
strb r0, [sp, #0x20]
|
||||
cmp r6, #0
|
||||
ble _0209D71C
|
||||
ldrb fp, [sp, #0x20]
|
||||
_0209D6F8:
|
||||
add r3, sp, #0x48
|
||||
ldr r3, [r3, r4, lsl #3]
|
||||
mov r0, r5
|
||||
mov r1, r8
|
||||
mov r2, fp
|
||||
blx r3
|
||||
add r4, r4, #1
|
||||
cmp r4, r6
|
||||
blt _0209D6F8
|
||||
_0209D71C:
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r4, [sp, #0x1c]
|
||||
str r0, [sp, #0x70]
|
||||
str r0, [sp, #0x6c]
|
||||
str r0, [sp, #0x68]
|
||||
ldr r0, [sp, #4]
|
||||
ldrh r0, [r0]
|
||||
mov r0, r0, lsl #0x1a
|
||||
movs r0, r0, lsr #0x1f
|
||||
addne r0, sb, #0x28
|
||||
addne r3, r5, #0x38
|
||||
ldmneia r0, {r0, r1, r2}
|
||||
stmneia r3, {r0, r1, r2}
|
||||
cmp r7, #0
|
||||
ble _0209D784
|
||||
_0209D758:
|
||||
ldr r2, [r8, #0x18]
|
||||
mov r1, r5
|
||||
add r0, r2, r4, lsl #3
|
||||
ldr fp, [r2, r4, lsl #3]
|
||||
ldr r0, [r0, #4]
|
||||
add r2, sp, #0x68
|
||||
mov r3, sb
|
||||
blx fp
|
||||
add r4, r4, #1
|
||||
cmp r4, r7
|
||||
blt _0209D758
|
||||
_0209D784:
|
||||
ldrh r1, [r5, #0x20]
|
||||
ldrsh r0, [r5, #0x22]
|
||||
add r0, r1, r0
|
||||
strh r0, [r5, #0x20]
|
||||
ldr r1, [r5, #0x14]
|
||||
ldr r0, [sp, #8]
|
||||
mul r0, r1, r0
|
||||
mov r0, r0, asr #9
|
||||
str r0, [r5, #0x14]
|
||||
ldr r1, [r5, #0x18]
|
||||
ldr r0, [sp, #8]
|
||||
mul r0, r1, r0
|
||||
mov r0, r0, asr #9
|
||||
str r0, [r5, #0x18]
|
||||
ldr r1, [r5, #0x1c]
|
||||
ldr r0, [sp, #8]
|
||||
mul r0, r1, r0
|
||||
mov r0, r0, asr #9
|
||||
str r0, [r5, #0x1c]
|
||||
ldr r1, [r5, #0x14]
|
||||
ldr r0, [sp, #0x68]
|
||||
add r0, r1, r0
|
||||
str r0, [r5, #0x14]
|
||||
ldr r1, [r5, #0x18]
|
||||
ldr r0, [sp, #0x6c]
|
||||
add r0, r1, r0
|
||||
str r0, [r5, #0x18]
|
||||
ldr r1, [r5, #0x1c]
|
||||
ldr r0, [sp, #0x70]
|
||||
add r0, r1, r0
|
||||
str r0, [r5, #0x1c]
|
||||
ldr r1, [r5, #0x14]
|
||||
ldr r0, [sb, #0x34]
|
||||
ldr r2, [r5, #8]
|
||||
add r0, r1, r0
|
||||
add r0, r2, r0
|
||||
str r0, [r5, #8]
|
||||
ldr r1, [r5, #0x18]
|
||||
ldr r0, [sb, #0x38]
|
||||
ldr r2, [r5, #0xc]
|
||||
add r0, r1, r0
|
||||
add r0, r2, r0
|
||||
str r0, [r5, #0xc]
|
||||
ldr r1, [r5, #0x1c]
|
||||
ldr r0, [sb, #0x3c]
|
||||
ldr r2, [r5, #0x10]
|
||||
add r0, r1, r0
|
||||
add r0, r2, r0
|
||||
str r0, [r5, #0x10]
|
||||
ldr r0, [sb, #0x20]
|
||||
ldr r0, [r0, #0]
|
||||
ldr r0, [r0, #0]
|
||||
movs r0, r0, lsr #0x1f
|
||||
beq _0209D888
|
||||
ldr r0, [sl, #0x38]
|
||||
ldrh r1, [r5, #0x2e]
|
||||
mov r0, r0, lsl #8
|
||||
mov r0, r0, lsr #0x1a
|
||||
bic r1, r1, #0xfc00
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
and r0, r0, #0x3f
|
||||
orr r0, r1, r0, lsl #10
|
||||
strh r0, [r5, #0x2e]
|
||||
b _0209D908
|
||||
_0209D888:
|
||||
ldr r0, [sl, #0x38]
|
||||
ldrh r1, [r5, #0x2e]
|
||||
mov r0, r0, lsl #0xe
|
||||
mov r0, r0, lsr #0x1a
|
||||
bic r1, r1, #0xfc00
|
||||
mov r0, r0, lsl #0x10
|
||||
mov r0, r0, lsr #0x10
|
||||
and r0, r0, #0x3f
|
||||
orr r0, r1, r0, lsl #10
|
||||
strh r0, [r5, #0x2e]
|
||||
ldr r1, [sl, #0x38]
|
||||
add r0, sl, #0x38
|
||||
bic r2, r1, #0x3f000
|
||||
mov r1, r1, lsl #0xe
|
||||
mov r1, r1, lsr #0x1a
|
||||
add r1, r1, #1
|
||||
and r1, r1, #0x3f
|
||||
orr r1, r2, r1, lsl #12
|
||||
str r1, [sl, #0x38]
|
||||
ldr r2, [sl, #0x38]
|
||||
mov r1, r2, lsl #0xe
|
||||
mov r3, r1, lsr #0x1a
|
||||
mov r1, r2, lsl #0x14
|
||||
cmp r3, r1, lsr #26
|
||||
bls _0209D908
|
||||
mov r1, r2, lsl #0x1a
|
||||
mov r1, r1, lsr #0x1a
|
||||
and r1, r1, #0x3f
|
||||
ldr r2, [r0, #0]
|
||||
bic r2, r2, #0x3f000
|
||||
orr r1, r2, r1, lsl #12
|
||||
str r1, [r0, #0]
|
||||
_0209D908:
|
||||
ldrh r0, [r5, #0x26]
|
||||
add r0, r0, #1
|
||||
strh r0, [r5, #0x26]
|
||||
ldrh r1, [r5, #0x26]
|
||||
ldrh r0, [r5, #0x24]
|
||||
cmp r1, r0
|
||||
bls _0209D93C
|
||||
mov r1, r5
|
||||
add r0, sb, #0x14
|
||||
bl sub_020A2238
|
||||
mov r1, r0
|
||||
add r0, sl, #0x1c
|
||||
bl sub_020A2304
|
||||
_0209D93C:
|
||||
ldr r5, [sp, #0x14]
|
||||
movs r0, r5
|
||||
bne _0209D6CC
|
||||
_0209D948:
|
||||
ldrh r0, [sb, #0x4c]
|
||||
add r0, r0, #1
|
||||
strh r0, [sb, #0x4c]
|
||||
ldr r2, [sb, #0x90]
|
||||
cmp r2, #0
|
||||
addeq sp, sp, #0x74
|
||||
ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
bxeq lr
|
||||
mov r0, sb
|
||||
mov r1, #1
|
||||
blx r2
|
||||
add sp, sp, #0x74
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr}
|
||||
bx lr
|
||||
_0209D980: .word sub_020A1DA0
|
||||
_0209D984: .word sub_020A1BD4
|
||||
_0209D988: .word sub_020A1AF8
|
||||
_0209D98C: .word sub_020A1A94
|
||||
_0209D990: .word sub_020A1A48
|
||||
_0209D994: .word sub_020A19F0
|
||||
}
|
||||
|
||||
void sub_0209D998(SPLEmitter *emtr, UnkSPLStruct4 *res, const VecFx32 *pos)
|
||||
{
|
||||
emtr->p_res = res;
|
||||
emtr->unk_94.all = 0;
|
||||
|
||||
emtr->unk_98.x = pos->x + emtr->p_res->unk_00->unk_04.x;
|
||||
emtr->unk_98.y = pos->y + emtr->p_res->unk_00->unk_04.y;
|
||||
emtr->unk_98.z = pos->z + emtr->p_res->unk_00->unk_04.z;
|
||||
|
||||
emtr->unk_B0.x = 0;
|
||||
emtr->unk_B0.y = 0;
|
||||
emtr->unk_B0.z = 0;
|
||||
emtr->unk_A4.x = emtr->unk_A4.y = emtr->unk_A4.z = 0;
|
||||
|
||||
emtr->unk_BC = 0;
|
||||
emtr->unk_BE = 0;
|
||||
|
||||
emtr->unk_C0 = emtr->p_res->unk_00->unk_1C;
|
||||
emtr->unk_C6 = emtr->p_res->unk_00->unk_38;
|
||||
emtr->unk_C8 = emtr->p_res->unk_00->unk_10;
|
||||
emtr->unk_CC = emtr->p_res->unk_00->unk_14;
|
||||
emtr->unk_D0 = emtr->p_res->unk_00->unk_18;
|
||||
emtr->unk_D4 = emtr->p_res->unk_00->unk_24;
|
||||
emtr->unk_D8 = emtr->p_res->unk_00->unk_28;
|
||||
emtr->unk_DC = emtr->p_res->unk_00->unk_2C;
|
||||
emtr->unk_E0 = emtr->p_res->unk_00->unk_40;
|
||||
|
||||
emtr->unk_E2 = GX_RGB(31, 31, 31);
|
||||
emtr->unk_F0.unk_00_0 = emtr->p_res->unk_00->unk_48.unk_00_0;
|
||||
emtr->unk_F0.unk_01_0 = emtr->p_res->unk_00->unk_48.unk_01_0;
|
||||
emtr->unk_F0.unk_02_0 = 0;
|
||||
emtr->unk_F0.unk_02_3 = 0;
|
||||
emtr->unk_E4 = FX32_MIN;
|
||||
emtr->unk_E8 = FX32_ONE << emtr->p_res->unk_00->unk_48.unk_07_0;
|
||||
emtr->unk_EA = FX32_ONE << emtr->p_res->unk_00->unk_48.unk_07_2;
|
||||
|
||||
if (emtr->p_res->unk_00->unk_48.unk_08_0) {
|
||||
emtr->unk_E8 *= -1;
|
||||
}
|
||||
|
||||
if (emtr->p_res->unk_00->unk_48.unk_08_1) {
|
||||
emtr->unk_EA *= -1;
|
||||
}
|
||||
|
||||
if (emtr->p_res->unk_00->unk_00.unk_06_0) {
|
||||
emtr->unk_EC = FX32_ONE << emtr->p_res->unk_14->unk_0C.unk_04_0;
|
||||
emtr->unk_EE = FX32_ONE << emtr->p_res->unk_14->unk_0C.unk_04_2;
|
||||
|
||||
if (emtr->p_res->unk_14->unk_0C.unk_04_4) {
|
||||
emtr->unk_EC *= -1;
|
||||
}
|
||||
|
||||
if (emtr->p_res->unk_14->unk_0C.unk_04_5) {
|
||||
emtr->unk_EE *= -1;
|
||||
}
|
||||
}
|
||||
|
||||
emtr->unk_00 = emtr->unk_04 = NULL;
|
||||
emtr->unk_08.unk_00 = emtr->unk_4C.unk_00 = NULL;
|
||||
emtr->unk_08.unk_04 = emtr->unk_4C.unk_04 = 0;
|
||||
emtr->unk_100 = NULL;
|
||||
emtr->unk_104 = NULL;
|
||||
emtr->unk_108.unk_108_val1 = 0;
|
||||
}
|
||||
|
||||
void sub_0209DC64(UnkSPLStruct5 *tex) { }
|
||||
|
||||
asm void sub_0209DC68(UnkSPLStruct5 *tex)
|
||||
{
|
||||
stmfd sp!, {r4, r5, r6, r7, lr}
|
||||
sub sp, sp, #4
|
||||
ldr r7, [r0, #0xc]
|
||||
ldr r3, _0209DD40 // =0x040004A8
|
||||
str r7, [sp]
|
||||
ldr r1, [r0, #4]
|
||||
mov r2, r7, lsl #0x1c
|
||||
mov lr, r2, lsr #0x1c
|
||||
mov r1, r1, lsr #3
|
||||
orr ip, r1, lr, lsl #26
|
||||
mov r4, r7, lsl #0x18
|
||||
mov r5, r7, lsl #0x14
|
||||
mov r2, r7, lsl #0xf
|
||||
mov r4, r4, lsr #0x1c
|
||||
orr ip, ip, #0x40000000
|
||||
mov r6, r7, lsl #0x12
|
||||
orr ip, ip, r4, lsl #20
|
||||
mov r5, r5, lsr #0x1c
|
||||
mov r1, r7, lsl #0x10
|
||||
orr ip, ip, r5, lsl #23
|
||||
mov r4, r6, lsr #0x1e
|
||||
mov r5, r1, lsr #0x1e
|
||||
orr r1, ip, r4, lsl #16
|
||||
mov r2, r2, lsr #0x1f
|
||||
orr r1, r1, r5, lsl #18
|
||||
orr r1, r1, r2, lsl #29
|
||||
str r1, [r3, #0]
|
||||
cmp lr, #2
|
||||
moveq r1, #1
|
||||
movne r1, #0
|
||||
ldr r2, [r0, #8]
|
||||
rsb r1, r1, #4
|
||||
mov r2, r2, lsr r1
|
||||
ldr r1, _0209DD44 // =0x040004AC
|
||||
ldr ip, _0209DD48 // =0x04000440
|
||||
str r2, [r1, #0]
|
||||
mov r2, #3
|
||||
ldr r1, _0209DD4C // =0x04000454
|
||||
str r2, [ip]
|
||||
mov r3, #0
|
||||
str r3, [r1, #0]
|
||||
ldrh r1, [r0, #0x10]
|
||||
ldrh r2, [r0, #0x12]
|
||||
ldr r0, _0209DD50 // =0x0400046C
|
||||
mov r1, r1, lsl #0xc
|
||||
str r1, [r0, #0]
|
||||
mov r1, r2, lsl #0xc
|
||||
str r1, [r0, #0]
|
||||
str r3, [r0, #0]
|
||||
mov r0, #1
|
||||
str r0, [ip]
|
||||
add sp, sp, #4
|
||||
ldmia sp!, {r4, r5, r6, r7, lr}
|
||||
bx lr
|
||||
// .align 2, 0
|
||||
_0209DD40: .word 0x040004A8
|
||||
_0209DD44: .word 0x040004AC
|
||||
_0209DD48: .word 0x04000440
|
||||
_0209DD4C: .word 0x04000454
|
||||
_0209DD50: .word 0x0400046C
|
||||
}
|
1003
lib/spl/src/unk_020A05BC.c
Normal file
1003
lib/spl/src/unk_020A05BC.c
Normal file
File diff suppressed because it is too large
Load Diff
134
lib/spl/src/unk_020A19F0.c
Normal file
134
lib/spl/src/unk_020A19F0.c
Normal file
@ -0,0 +1,134 @@
|
||||
#include "spl.h"
|
||||
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
void sub_020A19F0(SPLParticle *ptcl, UnkSPLStruct4 *res, int lifeRate)
|
||||
{
|
||||
ptcl->unk_2E.unk_00_5 = ((255 - lifeRate) * 31) / 255;
|
||||
}
|
||||
|
||||
void sub_020A1A48(SPLParticle *ptcl, UnkSPLStruct4 *res, int lifeRate)
|
||||
{
|
||||
ptcl->unk_34 = res->unk_14->unk_04 + ((res->unk_14->unk_04 - FX16_ONE) * (lifeRate - 255)) / 255;
|
||||
}
|
||||
|
||||
void sub_020A1A94(SPLParticle *ptcl, UnkSPLStruct4 *res, int lifeRate)
|
||||
{
|
||||
UnkSPLStruct13 *texAnim = res->unk_10;
|
||||
for (int i = 0; i < texAnim->unk_08.unk_00_0; i++) {
|
||||
if (lifeRate < texAnim->unk_08.unk_01_0 * (i + 1)) {
|
||||
ptcl->unk_2C.unk_00 = texAnim->unk_00[i];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_020A1AF8(SPLParticle *ptcl, UnkSPLStruct4 *res, int lifeRate)
|
||||
{
|
||||
u32 x;
|
||||
UnkSPLStruct12 *alphaAnim = res->unk_0C;
|
||||
int maxA = alphaAnim->unk_04.val2_00;
|
||||
int maxB = alphaAnim->unk_04.val2_01;
|
||||
|
||||
if (lifeRate < maxA) {
|
||||
x = ((lifeRate * (alphaAnim->unk_00.val2_00_5 - alphaAnim->unk_00.val2_00_0)) / alphaAnim->unk_04.val2_00);
|
||||
x += alphaAnim->unk_00.val2_00_0;
|
||||
} else if (lifeRate < maxB) {
|
||||
x = alphaAnim->unk_00.val2_00_5;
|
||||
} else {
|
||||
x = ((lifeRate - 255) * (alphaAnim->unk_00.val2_01_2 - alphaAnim->unk_00.val2_00_5)) / (255 - alphaAnim->unk_04.val2_01);
|
||||
x += alphaAnim->unk_00.val2_01_2;
|
||||
}
|
||||
|
||||
ptcl->unk_2E.unk_00_5 = x * (255 - ((int)(alphaAnim->unk_02.unk_00_0 * rng_next(0x18)) >> 8)) >> 8;
|
||||
}
|
||||
|
||||
#define GX_RGB_R(RGB) (((RGB) >> GX_RGB_R_SHIFT) & 31)
|
||||
#define GX_RGB_G(RGB) (((RGB) >> GX_RGB_G_SHIFT) & 31)
|
||||
#define GX_RGB_B(RGB) (((RGB) >> GX_RGB_B_SHIFT) & 31)
|
||||
|
||||
void sub_020A1BD4(SPLParticle *ptcl, UnkSPLStruct4 *res, int lifeRate)
|
||||
{
|
||||
UnkSPLStruct9 *resBase;
|
||||
UnkSPLStruct11 *colorAnim;
|
||||
int in, peak, out;
|
||||
|
||||
colorAnim = res->unk_08;
|
||||
resBase = res->unk_00;
|
||||
peak = colorAnim->unk_04.unk_05_0;
|
||||
out = colorAnim->unk_04.unk_06_0;
|
||||
in = colorAnim->unk_04.unk_04_0;
|
||||
|
||||
if (lifeRate < in) {
|
||||
ptcl->unk_36 = colorAnim->unk_00;
|
||||
} else if (lifeRate < peak) {
|
||||
int peakR = GX_RGB_R(resBase->unk_22);
|
||||
int startR = GX_RGB_R(colorAnim->unk_00);
|
||||
|
||||
int peakG = GX_RGB_G(resBase->unk_22);
|
||||
int startG = GX_RGB_G(colorAnim->unk_00);
|
||||
|
||||
int peakB = GX_RGB_B(resBase->unk_22);
|
||||
int startB = GX_RGB_B(colorAnim->unk_00);
|
||||
|
||||
if (colorAnim->unk_08.unk_00_2) { // interpolate
|
||||
int a = lifeRate - in;
|
||||
int b = peak - in;
|
||||
|
||||
ptcl->unk_36 = GX_RGB(
|
||||
startR + (a * (int)(peakR - startR)) / b,
|
||||
startG + (a * (int)(peakG - startG)) / b,
|
||||
startB + (a * (int)(peakB - startB)) / b
|
||||
);
|
||||
} else {
|
||||
ptcl->unk_36 = GX_RGB(peakR, peakG, peakB);
|
||||
}
|
||||
} else if (lifeRate < out) {
|
||||
int peakR = GX_RGB_R(resBase->unk_22);
|
||||
int endR = GX_RGB_R(colorAnim->unk_02);
|
||||
|
||||
int peakG = GX_RGB_G(resBase->unk_22);
|
||||
int endG = GX_RGB_G(colorAnim->unk_02);
|
||||
|
||||
int peakB = GX_RGB_B(resBase->unk_22);
|
||||
int endB = GX_RGB_B(colorAnim->unk_02);
|
||||
|
||||
if (colorAnim->unk_08.unk_00_2) { // interpolate
|
||||
int a = lifeRate - peak;
|
||||
int b = out - peak;
|
||||
|
||||
ptcl->unk_36 = GX_RGB(
|
||||
peakR + (a * (int)(endR - peakR)) / b,
|
||||
peakG + (a * (int)(endG - peakG)) / b,
|
||||
peakB + (a * (int)(endB - peakB)) / b
|
||||
);
|
||||
} else {
|
||||
ptcl->unk_36 = GX_RGB(endR, endG, endB);
|
||||
}
|
||||
} else {
|
||||
ptcl->unk_36 = colorAnim->unk_02;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_020A1DA0(SPLParticle *ptcl, UnkSPLStruct4 *res, int lifeRate)
|
||||
{
|
||||
UnkSPLStruct10 *scaleAnim;
|
||||
int in, out;
|
||||
fx16 start, n, end;
|
||||
|
||||
scaleAnim = res->unk_04;
|
||||
in = scaleAnim->unk_06.val2_00;
|
||||
out = scaleAnim->unk_06.val2_01;
|
||||
|
||||
if (lifeRate < in) {
|
||||
start = scaleAnim->unk_00;
|
||||
n = scaleAnim->unk_02;
|
||||
ptcl->unk_34 = start + ((lifeRate * (n - start)) / in);
|
||||
} else if (lifeRate >= out) {
|
||||
end = scaleAnim->unk_04;
|
||||
n = scaleAnim->unk_02;
|
||||
ptcl->unk_34 = end + (((lifeRate - 255) * (end - n)) / (255 - out));
|
||||
} else {
|
||||
ptcl->unk_34 = scaleAnim->unk_02;
|
||||
}
|
||||
}
|
92
lib/spl/src/unk_020A1E30.c
Normal file
92
lib/spl/src/unk_020A1E30.c
Normal file
@ -0,0 +1,92 @@
|
||||
#include "spl.h"
|
||||
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
|
||||
void SPL_020A1E30(const void *obj, SPLParticle *ptcl, VecFx32 *pos, SPLEmitter *emtr)
|
||||
{
|
||||
SPLConvergence *conv = (SPLConvergence *)obj;
|
||||
ptcl->unk_08.x += FX32_CAST(FX_MUL(conv->ratio, (conv->pos.x - ptcl->unk_08.x)));
|
||||
ptcl->unk_08.y += FX32_CAST(FX_MUL(conv->ratio, (conv->pos.y - ptcl->unk_08.y)));
|
||||
ptcl->unk_08.z += FX32_CAST(FX_MUL(conv->ratio, (conv->pos.z - ptcl->unk_08.z)));
|
||||
}
|
||||
|
||||
void SPL_020A1EC4(const void *obj,SPLParticle *ptcl,VecFx32 *pos,SPLEmitter *emtr)
|
||||
{
|
||||
SPLSimpleCollisionField *fld = (SPLSimpleCollisionField *)obj;
|
||||
fx32 y = fld->y;
|
||||
fx32 ey;
|
||||
|
||||
if (emtr->unk_E4 != FX32_MIN) {
|
||||
y = emtr->unk_E4;
|
||||
}
|
||||
|
||||
switch (fld->etc.eventtype) {
|
||||
case 0:
|
||||
ey = ptcl->unk_38.y;
|
||||
if (ey < y && ey + ptcl->unk_08.y > y) {
|
||||
ptcl->unk_08.y = y - ey;
|
||||
ptcl->unk_26 = ptcl->unk_24;
|
||||
} else if (ey >= y) {
|
||||
if (ey + ptcl->unk_08.y < y) {
|
||||
ptcl->unk_08.y = y - ey;
|
||||
ptcl->unk_26 = ptcl->unk_24;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
ey = ptcl->unk_38.y;
|
||||
if (ey < y && ey + ptcl->unk_08.y > y) {
|
||||
ptcl->unk_08.y = y - ey;
|
||||
ptcl->unk_14.y = -FX32_CAST(FX_MUL(ptcl->unk_14.y, fld->coeff_bounce));
|
||||
return;
|
||||
}
|
||||
if (ey < y) {
|
||||
return;
|
||||
}
|
||||
if (ey + ptcl->unk_08.y < y) {
|
||||
ptcl->unk_08.y = y - ey;
|
||||
ptcl->unk_14.y = -FX32_CAST(FX_MUL(ptcl->unk_14.y, fld->coeff_bounce));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SPL_020A1FE0(const void *obj, SPLParticle *ptcl, VecFx32 *pos, SPLEmitter *emtr)
|
||||
{
|
||||
SPLSpin *spin = (SPLSpin *)obj;
|
||||
MtxFx33 rot;
|
||||
switch (spin->axis_type) {
|
||||
case 0: MTX_RotX33(&rot, FX_SinIdx(spin->radian), FX_CosIdx(spin->radian)); break;
|
||||
case 1: MTX_RotY33(&rot, FX_SinIdx(spin->radian), FX_CosIdx(spin->radian)); break;
|
||||
case 2: MTX_RotZ33(&rot, FX_SinIdx(spin->radian), FX_CosIdx(spin->radian)); break;
|
||||
}
|
||||
|
||||
MTX_MultVec33(&ptcl->unk_08, &rot, &ptcl->unk_08);
|
||||
}
|
||||
|
||||
void SPL_020A20B8(const void *obj, SPLParticle *ptcl, VecFx32 *pos, SPLEmitter *emtr)
|
||||
{
|
||||
SPLMagnet *magnet = (SPLMagnet *)obj;
|
||||
pos->x += (magnet->mag * ((magnet->pos.x - ptcl->unk_08.x) - ptcl->unk_14.x)) >> FX32_SHIFT;
|
||||
pos->y += (magnet->mag * ((magnet->pos.y - ptcl->unk_08.y) - ptcl->unk_14.y)) >> FX32_SHIFT;
|
||||
pos->z += (magnet->mag * ((magnet->pos.z - ptcl->unk_08.z) - ptcl->unk_14.z)) >> FX32_SHIFT;
|
||||
}
|
||||
|
||||
void SPL_020A213C(const void *obj, SPLParticle *ptcl, VecFx32 *acc, SPLEmitter *emtr)
|
||||
{
|
||||
SPLRandom *rng = (SPLRandom *)obj;
|
||||
if ((ptcl->unk_26 % rng->intvl) == 0) {
|
||||
acc->x += (((fx32)(rng->mag.x * rng_next(0x17))) - rng->mag.x * 256) >> 8;
|
||||
acc->y += (((fx32)(rng->mag.y * rng_next(0x17))) - rng->mag.y * 256) >> 8;
|
||||
acc->z += (((fx32)(rng->mag.z * rng_next(0x17))) - rng->mag.z * 256) >> 8;
|
||||
}
|
||||
}
|
||||
|
||||
void SPL_020A2204(const void *obj,SPLParticle *ptcl,VecFx32 *pos, SPLEmitter *emtr)
|
||||
{
|
||||
SPLGravity *gravity = (SPLGravity *)obj;
|
||||
pos->x += gravity->mag.x;
|
||||
pos->y += gravity->mag.y;
|
||||
pos->z += gravity->mag.z;
|
||||
}
|
67
lib/spl/src/unk_020A2238.c
Normal file
67
lib/spl/src/unk_020A2238.c
Normal file
@ -0,0 +1,67 @@
|
||||
#include "spl.h"
|
||||
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
SPLNode *sub_020A2238(SPLList *list, SPLNode *node)
|
||||
{
|
||||
SPLNode *next = node->p_next;
|
||||
if (next == NULL) {
|
||||
if (list->p_begin == node) {
|
||||
list->p_begin = NULL;
|
||||
list->p_end = NULL;
|
||||
} else {
|
||||
node->p_prev->p_next = NULL;
|
||||
list->p_end = list->p_end->p_prev;
|
||||
}
|
||||
} else if (list->p_begin == node) {
|
||||
list->p_begin = next;
|
||||
list->p_begin->p_prev = NULL;
|
||||
} else {
|
||||
next->p_prev = node->p_prev;
|
||||
node->p_prev->p_next = node->p_next;
|
||||
}
|
||||
|
||||
list->node_num -= 1;
|
||||
return node;
|
||||
}
|
||||
|
||||
SPLNode *sub_020A22B8(SPLList *list)
|
||||
{
|
||||
SPLNode *begin;
|
||||
SPLNode *node;
|
||||
|
||||
node = NULL;
|
||||
begin = list->p_begin;
|
||||
|
||||
if (begin != NULL) {
|
||||
node = begin;
|
||||
list->p_begin = begin->p_next;
|
||||
if (list->p_begin != NULL) {
|
||||
begin->p_next->p_prev = NULL;
|
||||
} else {
|
||||
list->p_begin = NULL;
|
||||
list->p_end = NULL;
|
||||
}
|
||||
|
||||
list->node_num -= 1;
|
||||
}
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
void sub_020A2304(SPLList *list, SPLNode *node)
|
||||
{
|
||||
if (list->p_begin == NULL) {
|
||||
list->p_begin = node;
|
||||
list->p_end = node;
|
||||
node->p_next = NULL;
|
||||
node->p_prev = node->p_next;
|
||||
} else {
|
||||
node->p_next = list->p_begin;
|
||||
node->p_prev = NULL;
|
||||
list->p_begin->p_prev = node;
|
||||
list->p_begin = node;
|
||||
}
|
||||
|
||||
list->node_num += 1;
|
||||
}
|
19
lib/spl/src/unk_020A2354.c
Normal file
19
lib/spl/src/unk_020A2354.c
Normal file
@ -0,0 +1,19 @@
|
||||
#include "spl.h"
|
||||
|
||||
#include <nitro/fx/fx.h>
|
||||
|
||||
void sub_020A2354(VecFx32 *vec)
|
||||
{
|
||||
vec->x = rng_next(8);
|
||||
vec->y = rng_next(8);
|
||||
vec->z = 0;
|
||||
VEC_Normalize(vec, vec);
|
||||
}
|
||||
|
||||
void sub_020A23B0(VecFx32 *vec)
|
||||
{
|
||||
vec->x = rng_next(8);
|
||||
vec->y = rng_next(8);
|
||||
vec->z = rng_next(8);
|
||||
VEC_Normalize(vec, vec);
|
||||
}
|
@ -71,7 +71,7 @@ typedef struct UnkStruct_ov12_02223178_t {
|
||||
u16 unk_16;
|
||||
int unk_18;
|
||||
UnkStruct_02014014 *unk_1C[16];
|
||||
UnkSPLStruct6 *unk_5C[20];
|
||||
SPLEmitter *unk_5C[20];
|
||||
SpriteRenderer *unk_AC;
|
||||
UnkStruct_ov16_0223E0C8 *unk_B0[4];
|
||||
u8 unk_C0[4];
|
||||
@ -729,9 +729,9 @@ UnkStruct_02014014 *ov12_02220260(UnkStruct_ov12_0221FCDC *param0, int param1)
|
||||
return param0->unk_BC->unk_1C[param1];
|
||||
}
|
||||
|
||||
UnkSPLStruct6 *ov12_0222026C(UnkStruct_ov12_0221FCDC *param0, int param1)
|
||||
SPLEmitter *ov12_0222026C(UnkStruct_ov12_0221FCDC *param0, int param1)
|
||||
{
|
||||
UnkSPLStruct6 *v0;
|
||||
SPLEmitter *v0;
|
||||
|
||||
v0 = param0->unk_BC->unk_5C[param1];
|
||||
return v0;
|
||||
|
@ -15,7 +15,7 @@
|
||||
#include "spl.h"
|
||||
#include "unk_02014000.h"
|
||||
|
||||
static void ov12_022237EC(UnkSPLStruct6 *param0);
|
||||
static void ov12_022237EC(SPLEmitter *param0);
|
||||
|
||||
static const UnkFuncPtr_020146F4 Unk_ov12_02238DB0[] = {
|
||||
ov12_022237EC,
|
||||
@ -43,7 +43,7 @@ static const UnkFuncPtr_020146F4 Unk_ov12_02238DB0[] = {
|
||||
ov12_022238DC
|
||||
};
|
||||
|
||||
static void ov12_022237EC(UnkSPLStruct6 *param0)
|
||||
static void ov12_022237EC(SPLEmitter *param0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -94,7 +94,7 @@ UnkStruct_02014014 *ov12_0222384C(NARC *param0, int param1, int param2, int para
|
||||
return v0;
|
||||
}
|
||||
|
||||
UnkSPLStruct6 *ov12_02223880(UnkStruct_02014014 *param0, int param1, int param2, void *param3)
|
||||
SPLEmitter *ov12_02223880(UnkStruct_02014014 *param0, int param1, int param2, void *param3)
|
||||
{
|
||||
return sub_020146F4(param0, param1, Unk_ov12_02238DB0[param2], param3);
|
||||
}
|
||||
|
@ -58,12 +58,12 @@ static s8 ov12_0222389C(UnkStruct_ov12_0221FCDC *param0, int param1, int param2)
|
||||
return v0;
|
||||
}
|
||||
|
||||
void ov12_022238DC(UnkSPLStruct6 *param0)
|
||||
void ov12_022238DC(SPLEmitter *param0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
void ov12_022238E0(UnkSPLStruct6 *param0)
|
||||
void ov12_022238E0(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
UnkStruct_02014014 *v1;
|
||||
@ -122,7 +122,7 @@ void ov12_022238E0(UnkSPLStruct6 *param0)
|
||||
}
|
||||
}
|
||||
|
||||
void ov12_02223998(UnkSPLStruct6 *param0)
|
||||
void ov12_02223998(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
UnkStruct_02014014 *v1;
|
||||
@ -143,7 +143,7 @@ void ov12_02223998(UnkSPLStruct6 *param0)
|
||||
sub_02014744(v1, &v4);
|
||||
}
|
||||
|
||||
void ov12_022239F4(UnkSPLStruct6 *param0)
|
||||
void ov12_022239F4(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
int v1;
|
||||
@ -159,7 +159,7 @@ void ov12_022239F4(UnkSPLStruct6 *param0)
|
||||
SPL_UnkInline4(param0, v2.z);
|
||||
}
|
||||
|
||||
void ov12_02223A38(UnkSPLStruct6 *param0)
|
||||
void ov12_02223A38(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
int v1;
|
||||
@ -175,7 +175,7 @@ void ov12_02223A38(UnkSPLStruct6 *param0)
|
||||
SPL_UnkInline4(param0, v2.z);
|
||||
}
|
||||
|
||||
void ov12_02223A7C(UnkSPLStruct6 *param0)
|
||||
void ov12_02223A7C(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
int v1;
|
||||
@ -193,7 +193,7 @@ void ov12_02223A7C(UnkSPLStruct6 *param0)
|
||||
SPL_UnkInline4(param0, v3.z);
|
||||
}
|
||||
|
||||
void ov12_02223AC8(UnkSPLStruct6 *param0)
|
||||
void ov12_02223AC8(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
VecFx32 v1;
|
||||
@ -222,7 +222,7 @@ void ov12_02223AC8(UnkSPLStruct6 *param0)
|
||||
SPL_UnkInline4(param0, v1.z);
|
||||
}
|
||||
|
||||
void ov12_02223B30(UnkSPLStruct6 *param0)
|
||||
void ov12_02223B30(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
VecFx32 v1;
|
||||
@ -252,7 +252,7 @@ void ov12_02223B30(UnkSPLStruct6 *param0)
|
||||
SPL_UnkInline4(param0, v1.z);
|
||||
}
|
||||
|
||||
void ov12_02223B98(UnkSPLStruct6 *param0)
|
||||
void ov12_02223B98(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
int v1;
|
||||
@ -333,7 +333,7 @@ static void ov12_02223C40(int param0, s8 param1, VecFx32 *param2)
|
||||
}
|
||||
}
|
||||
|
||||
static void ov12_02223CD4(UnkStruct_ov12_0221FCDC *param0, UnkSPLStruct6 *param1, int param2, int param3, int param4, s8 param5, VecFx32 *param6)
|
||||
static void ov12_02223CD4(UnkStruct_ov12_0221FCDC *param0, SPLEmitter *param1, int param2, int param3, int param4, s8 param5, VecFx32 *param6)
|
||||
{
|
||||
VecFx32 v0 = { 0, 0, 0 };
|
||||
|
||||
@ -373,7 +373,7 @@ static void ov12_02223CD4(UnkStruct_ov12_0221FCDC *param0, UnkSPLStruct6 *param1
|
||||
sub_02014970(param1, &v0);
|
||||
}
|
||||
|
||||
static void ov12_02223DA4(UnkStruct_ov12_0221FCDC *param0, UnkSPLStruct6 *param1, int param2, int param3, int param4, s8 param5, VecFx32 *param6)
|
||||
static void ov12_02223DA4(UnkStruct_ov12_0221FCDC *param0, SPLEmitter *param1, int param2, int param3, int param4, s8 param5, VecFx32 *param6)
|
||||
{
|
||||
VecFx32 v0 = { 0, 0, 0 };
|
||||
|
||||
@ -413,7 +413,7 @@ static void ov12_02223DA4(UnkStruct_ov12_0221FCDC *param0, UnkSPLStruct6 *param1
|
||||
sub_02014890(param1, &v0);
|
||||
}
|
||||
|
||||
static void ov12_02223E74(UnkStruct_ov12_0221FCDC *param0, UnkSPLStruct6 *param1, int param2, int param3, int param4, int param5)
|
||||
static void ov12_02223E74(UnkStruct_ov12_0221FCDC *param0, SPLEmitter *param1, int param2, int param3, int param4, int param5)
|
||||
{
|
||||
UnkStruct_02014014 *v0;
|
||||
VecFx32 v1;
|
||||
@ -536,7 +536,7 @@ static void ov12_02223E74(UnkStruct_ov12_0221FCDC *param0, UnkSPLStruct6 *param1
|
||||
SPL_UnkInline5(param1, &v4);
|
||||
}
|
||||
|
||||
static void ov12_02224138(UnkSPLStruct6 *param0, int param1, int param2)
|
||||
static void ov12_02224138(SPLEmitter *param0, int param1, int param2)
|
||||
{
|
||||
int v0, v1;
|
||||
UnkStruct_ov12_0221FCDC *v2;
|
||||
@ -548,62 +548,62 @@ static void ov12_02224138(UnkSPLStruct6 *param0, int param1, int param2)
|
||||
ov12_02223E74(v2, param0, v0, v1, param1, param2);
|
||||
}
|
||||
|
||||
void ov12_02224168(UnkSPLStruct6 *param0)
|
||||
void ov12_02224168(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 0, 0);
|
||||
}
|
||||
|
||||
void ov12_02224174(UnkSPLStruct6 *param0)
|
||||
void ov12_02224174(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 1, 1);
|
||||
}
|
||||
|
||||
void ov12_02224180(UnkSPLStruct6 *param0)
|
||||
void ov12_02224180(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 1, 2);
|
||||
}
|
||||
|
||||
void ov12_0222418C(UnkSPLStruct6 *param0)
|
||||
void ov12_0222418C(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 1, 3);
|
||||
}
|
||||
|
||||
void ov12_02224198(UnkSPLStruct6 *param0)
|
||||
void ov12_02224198(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 1, 4);
|
||||
}
|
||||
|
||||
void ov12_022241A4(UnkSPLStruct6 *param0)
|
||||
void ov12_022241A4(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 1, 5);
|
||||
}
|
||||
|
||||
void ov12_022241B0(UnkSPLStruct6 *param0)
|
||||
void ov12_022241B0(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 2, 1);
|
||||
}
|
||||
|
||||
void ov12_022241BC(UnkSPLStruct6 *param0)
|
||||
void ov12_022241BC(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 2, 2);
|
||||
}
|
||||
|
||||
void ov12_022241C8(UnkSPLStruct6 *param0)
|
||||
void ov12_022241C8(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 2, 3);
|
||||
}
|
||||
|
||||
void ov12_022241D4(UnkSPLStruct6 *param0)
|
||||
void ov12_022241D4(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 2, 4);
|
||||
}
|
||||
|
||||
void ov12_022241E0(UnkSPLStruct6 *param0)
|
||||
void ov12_022241E0(SPLEmitter *param0)
|
||||
{
|
||||
ov12_02224138(param0, 2, 5);
|
||||
}
|
||||
|
||||
void ov12_022241EC(UnkSPLStruct6 *param0)
|
||||
void ov12_022241EC(SPLEmitter *param0)
|
||||
{
|
||||
int v0, v1;
|
||||
UnkStruct_ov12_0221FCDC *v2;
|
||||
|
@ -23,16 +23,16 @@ typedef struct {
|
||||
int unk_08;
|
||||
} UnkStruct_ov12_022396AC;
|
||||
|
||||
static void ov12_0222421C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_022242E0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224614(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224E74(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224EA8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224EB8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_0222421C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_022242E0(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224614(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224E74(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224EA8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02224EB8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static void ov12_02225008(UnkStruct_ov12_02225640 *param0, int param1, VecFx32 *param2);
|
||||
static void ov12_02225094(UnkStruct_ov12_02225640 *param0, VecFx32 *param1);
|
||||
|
||||
static void ov12_0222421C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static void ov12_0222421C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
if (param1->unk_0C[2] != 0) {
|
||||
ov12_022242E0(param0, param1);
|
||||
@ -53,7 +53,7 @@ static void ov12_0222421C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
}
|
||||
}
|
||||
|
||||
static void ov12_02224260(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1, VecFx32 *param2)
|
||||
static void ov12_02224260(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1, VecFx32 *param2)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
UnkStruct_02014014 *v1;
|
||||
@ -78,7 +78,7 @@ static void ov12_02224260(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
ov12_02235448(v3, param2, ov12_0221FDD4(v0), v2);
|
||||
}
|
||||
|
||||
static void ov12_022242A0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1, VecFx32 *param2)
|
||||
static void ov12_022242A0(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1, VecFx32 *param2)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
UnkStruct_02014014 *v1;
|
||||
@ -103,7 +103,7 @@ static void ov12_022242A0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
ov12_02235448(v4, param2, ov12_0221FDD4(v0), v3);
|
||||
}
|
||||
|
||||
static void ov12_022242E0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static void ov12_022242E0(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
VecFx32 v0;
|
||||
|
||||
@ -296,7 +296,7 @@ static const UnkStruct_ov12_022396AC Unk_ov12_0223934C[6][6];
|
||||
static const UnkStruct_ov12_022396AC Unk_ov12_02239A0C[6][6];
|
||||
static const UnkStruct_ov12_022396AC Unk_ov12_02239BBC[6][6];
|
||||
|
||||
static void ov12_02224614(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static void ov12_02224614(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
@ -599,7 +599,7 @@ static void ov12_02224614(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
SPL_UnkInline5(param0, &v2);
|
||||
}
|
||||
|
||||
static void ov12_02224E74(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static void ov12_02224E74(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
@ -618,12 +618,12 @@ static void ov12_02224E74(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
}
|
||||
}
|
||||
|
||||
static void ov12_02224EA8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static void ov12_02224EA8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
ov12_0222584C(param1->unk_0C[5], param0, param1);
|
||||
}
|
||||
|
||||
static void ov12_02224EB8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static void ov12_02224EB8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
fx32 v0;
|
||||
int v1;
|
||||
@ -670,7 +670,7 @@ static void ov12_02224EB8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
SPL_UnkInline4(param0, v0);
|
||||
}
|
||||
|
||||
void ov12_02224F14(UnkSPLStruct6 *param0)
|
||||
void ov12_02224F14(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_0221FCDC *v0;
|
||||
UnkStruct_ov12_02225640 *v1;
|
||||
|
@ -12,22 +12,22 @@
|
||||
#include "unk_02014000.h"
|
||||
|
||||
static void ov12_02225104(UnkStruct_ov12_02225640 *param0, int param1[]);
|
||||
static BOOL ov12_02225110(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225114(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022251F8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022251FC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225200(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022252C8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_0222534C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022253CC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225434(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225438(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_0222543C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225440(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225444(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225550(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225110(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225114(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022251F8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022251FC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225200(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022252C8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_0222534C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022253CC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225434(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225438(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_0222543C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225440(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225444(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225550(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
|
||||
static BOOL (*const Unk_ov12_02239D6C[])(UnkSPLStruct6 *, UnkStruct_ov12_02225640 *) = {
|
||||
static BOOL (*const Unk_ov12_02239D6C[])(SPLEmitter *, UnkStruct_ov12_02225640 *) = {
|
||||
ov12_02225110,
|
||||
ov12_02225114,
|
||||
ov12_022251F8,
|
||||
@ -49,12 +49,12 @@ static void ov12_02225104(UnkStruct_ov12_02225640 *param0, int param1[])
|
||||
ov12_0222325C(param0->unk_00, param1, 5);
|
||||
}
|
||||
|
||||
static BOOL ov12_02225110(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225110(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225114(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225114(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
VecFx16 v1 = { 0, 0, 0 };
|
||||
@ -98,17 +98,17 @@ static BOOL ov12_02225114(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022251F8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022251F8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022251FC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022251FC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225200(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225200(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
VecFx32 v1 = { 0, 0, 0 };
|
||||
@ -152,7 +152,7 @@ static BOOL ov12_02225200(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022252C8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022252C8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
fx16 v1 = 0;
|
||||
@ -183,7 +183,7 @@ static BOOL ov12_022252C8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_0222534C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_0222534C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
u16 v1 = 0;
|
||||
@ -214,7 +214,7 @@ static BOOL ov12_0222534C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022253CC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022253CC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
u16 v1 = 0;
|
||||
@ -243,27 +243,27 @@ static BOOL ov12_022253CC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225434(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225434(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225438(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225438(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_0222543C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_0222543C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225440(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225440(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225444(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225444(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
VecFx32 v1 = { 0, 0, 0 };
|
||||
@ -314,7 +314,7 @@ static BOOL ov12_02225444(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225550(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225550(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[5];
|
||||
fx16 v1 = 0;
|
||||
@ -345,7 +345,7 @@ static BOOL ov12_02225550(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ov12_022255D4(int param0, UnkSPLStruct6 *param1, UnkStruct_ov12_02225640 *param2)
|
||||
void ov12_022255D4(int param0, SPLEmitter *param1, UnkStruct_ov12_02225640 *param2)
|
||||
{
|
||||
BOOL v0;
|
||||
|
||||
|
@ -13,17 +13,17 @@
|
||||
#include "unk_02014000.h"
|
||||
|
||||
static void ov12_02225640(UnkStruct_ov12_02225640 *param0, int param1[]);
|
||||
static BOOL ov12_0222564C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225670(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022256AC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022256E8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225724(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225784(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022257C0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022257FC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225824(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_0222564C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225670(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022256AC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022256E8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225724(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225784(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022257C0(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_022257FC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
static BOOL ov12_02225824(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1);
|
||||
|
||||
static BOOL (*const Unk_ov12_02239E10[])(UnkSPLStruct6 *, UnkStruct_ov12_02225640 *) = {
|
||||
static BOOL (*const Unk_ov12_02239E10[])(SPLEmitter *, UnkStruct_ov12_02225640 *) = {
|
||||
ov12_0222564C,
|
||||
ov12_02225670,
|
||||
ov12_022256AC,
|
||||
@ -40,7 +40,7 @@ static void ov12_02225640(UnkStruct_ov12_02225640 *param0, int param1[])
|
||||
ov12_0222325C(param0->unk_00, param1, 4);
|
||||
}
|
||||
|
||||
static BOOL ov12_0222564C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_0222564C(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
Camera *camera;
|
||||
CameraAngle v1 = { 0, 0, 0 };
|
||||
@ -51,7 +51,7 @@ static BOOL ov12_0222564C(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225670(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225670(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
Camera *camera;
|
||||
CameraAngle v1 = { (0x1000 * 2), (0x1000 * 2), 0 };
|
||||
@ -64,7 +64,7 @@ static BOOL ov12_02225670(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022256AC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022256AC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
int v0[4];
|
||||
CameraAngle v1 = { 0, 0, 0, 0 };
|
||||
@ -82,7 +82,7 @@ static BOOL ov12_022256AC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022256E8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022256E8(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
Camera *camera;
|
||||
CameraAngle v1 = { -(0x1000 * 3), (0x1000 * 2), 0x1000 };
|
||||
@ -95,7 +95,7 @@ static BOOL ov12_022256E8(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225724(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225724(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
Camera *camera;
|
||||
CameraAngle v1 = { 49664, 5952, 4096 };
|
||||
@ -113,7 +113,7 @@ static BOOL ov12_02225724(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225784(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225784(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
Camera *camera;
|
||||
CameraAngle v1 = { 49664, 5952, 4096 };
|
||||
@ -126,7 +126,7 @@ static BOOL ov12_02225784(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022257C0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022257C0(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
Camera *camera;
|
||||
CameraAngle v1 = { 0, 0, -6000 };
|
||||
@ -139,7 +139,7 @@ static BOOL ov12_022257C0(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_022257FC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_022257FC(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
VecFx32 v0;
|
||||
Camera *camera;
|
||||
@ -152,7 +152,7 @@ static BOOL ov12_022257FC(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
static BOOL ov12_02225824(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1)
|
||||
static BOOL ov12_02225824(SPLEmitter *param0, UnkStruct_ov12_02225640 *param1)
|
||||
{
|
||||
VecFx32 v0;
|
||||
Camera *camera;
|
||||
@ -165,7 +165,7 @@ static BOOL ov12_02225824(UnkSPLStruct6 *param0, UnkStruct_ov12_02225640 *param1
|
||||
return 1;
|
||||
}
|
||||
|
||||
void ov12_0222584C(int param0, UnkSPLStruct6 *param1, UnkStruct_ov12_02225640 *param2)
|
||||
void ov12_0222584C(int param0, SPLEmitter *param1, UnkStruct_ov12_02225640 *param2)
|
||||
{
|
||||
BOOL v0;
|
||||
|
||||
|
@ -351,7 +351,7 @@ typedef struct {
|
||||
int unk_2C;
|
||||
int unk_30;
|
||||
UnkStruct_02014014 *unk_34;
|
||||
UnkSPLStruct6 *unk_38;
|
||||
SPLEmitter *unk_38;
|
||||
UnkStruct_ov12_0223595C unk_3C;
|
||||
UnkStruct_ov12_02235998 unk_58[4];
|
||||
UnkStruct_ov12_02225F6C unk_A8[2];
|
||||
@ -373,7 +373,7 @@ typedef struct {
|
||||
int unk_2C;
|
||||
int unk_30;
|
||||
UnkStruct_02014014 *unk_34;
|
||||
UnkSPLStruct6 *unk_38;
|
||||
SPLEmitter *unk_38;
|
||||
UnkStruct_ov12_0223595C unk_3C;
|
||||
UnkStruct_ov12_02225F6C unk_58;
|
||||
VecFx32 unk_7C;
|
||||
@ -2859,14 +2859,14 @@ static void ov12_02229980(UnkStruct_ov12_0221FCDC *param0, UnkStruct_ov12_022299
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL ov12_02229A50(UnkSPLStruct6 *param0)
|
||||
static BOOL ov12_02229A50(SPLEmitter *param0)
|
||||
{
|
||||
BOOL v0;
|
||||
|
||||
v0 = 0;
|
||||
|
||||
{
|
||||
UnkSPLStruct8 *v1;
|
||||
SPLParticle *v1;
|
||||
int v2;
|
||||
int v3;
|
||||
|
||||
|
@ -58,7 +58,7 @@ typedef struct UnkStruct_ov12_02235FE0_t {
|
||||
UnkStruct_02014014 *unk_14[9];
|
||||
UnkStruct_0202CA64 *unk_38[9];
|
||||
BOOL unk_5C[9];
|
||||
UnkSPLStruct6 *unk_80;
|
||||
SPLEmitter *unk_80;
|
||||
SysTask *unk_84;
|
||||
BOOL unk_88;
|
||||
NARC *unk_8C;
|
||||
@ -71,7 +71,7 @@ typedef struct UnkStruct_ov12_02235FE0_t {
|
||||
|
||||
typedef struct UnkStruct_ov12_02236648_t {
|
||||
UnkStruct_ov12_02236690 unk_00;
|
||||
UnkSPLStruct6 *unk_14;
|
||||
SPLEmitter *unk_14;
|
||||
UnkStruct_02014014 *unk_18;
|
||||
int unk_1C;
|
||||
int unk_20;
|
||||
@ -116,8 +116,8 @@ typedef struct BallRotation {
|
||||
|
||||
static void ov12_022363CC(SysTask *param0, void *param1);
|
||||
static void ov12_0223646C(UnkStruct_ov12_02235FE0 *param0, UnkFuncPtr_020146F4 param1);
|
||||
static void ov12_02236598(UnkSPLStruct6 *param0);
|
||||
static void ov12_022365D4(UnkSPLStruct6 *param0);
|
||||
static void ov12_02236598(SPLEmitter *param0);
|
||||
static void ov12_022365D4(SPLEmitter *param0);
|
||||
static void ov12_02237C54(BallRotation *param0);
|
||||
static void ov12_02237D8C(BallRotation *param0);
|
||||
static void ov12_022378A0(BallRotation *param0);
|
||||
@ -755,7 +755,7 @@ static void ov12_02236520(int param0, VecFx32 *param1)
|
||||
}
|
||||
}
|
||||
|
||||
static void ov12_02236598(UnkSPLStruct6 *param0)
|
||||
static void ov12_02236598(SPLEmitter *param0)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov12_02235FE0 *v1;
|
||||
@ -771,7 +771,7 @@ static void ov12_02236598(UnkSPLStruct6 *param0)
|
||||
}
|
||||
}
|
||||
|
||||
static void ov12_022365D4(UnkSPLStruct6 *param0)
|
||||
static void ov12_022365D4(SPLEmitter *param0)
|
||||
{
|
||||
VecFx32 v0;
|
||||
int v1;
|
||||
@ -824,7 +824,7 @@ static void ov12_022365D4(UnkSPLStruct6 *param0)
|
||||
SPL_UnkInline1(param0, &v0);
|
||||
}
|
||||
|
||||
static void ov12_02236648(UnkSPLStruct6 *param0)
|
||||
static void ov12_02236648(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_02236648 *v0 = sub_02014764();
|
||||
|
||||
|
@ -22,7 +22,7 @@ typedef struct UnkStruct_ov12_02238004_t {
|
||||
int unk_04;
|
||||
UnkStruct_ov12_02237F38 unk_08;
|
||||
UnkStruct_02014014 *unk_10;
|
||||
UnkSPLStruct6 *unk_14;
|
||||
SPLEmitter *unk_14;
|
||||
SysTask *unk_18;
|
||||
int unk_1C;
|
||||
BOOL unk_20;
|
||||
@ -36,7 +36,7 @@ typedef struct UnkStruct_ov12_02237F98_t {
|
||||
|
||||
static void ov12_02238030(SysTask *param0, void *param1);
|
||||
static void ov12_02238054(UnkStruct_ov12_02238004 *param0, UnkFuncPtr_020146F4 param1);
|
||||
static void ov12_02238080(UnkSPLStruct6 *param0);
|
||||
static void ov12_02238080(SPLEmitter *param0);
|
||||
static int ov12_02238088(int param0);
|
||||
|
||||
UnkStruct_ov12_02237F98 *ov12_02237EFC(int param0, UnkStruct_ov12_02237EFC *param1)
|
||||
@ -195,7 +195,7 @@ static void ov12_02238054(UnkStruct_ov12_02238004 *param0, UnkFuncPtr_020146F4 p
|
||||
sub_02014788(param0->unk_10, param0->unk_08.unk_04);
|
||||
}
|
||||
|
||||
static void ov12_02238080(UnkSPLStruct6 *param0)
|
||||
static void ov12_02238080(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov12_02238004 *v0;
|
||||
|
||||
|
@ -976,7 +976,7 @@ static void ov17_02248860(SysTask *param0, void *param1)
|
||||
}
|
||||
}
|
||||
|
||||
static void ov17_02248990(UnkSPLStruct6 *param0)
|
||||
static void ov17_02248990(SPLEmitter *param0)
|
||||
{
|
||||
{
|
||||
VecFx32 v0 = { 0, 0, 0 };
|
||||
|
@ -105,7 +105,7 @@ static void ov17_0224AE84(SysTask *param0, void *param1);
|
||||
static void ov17_0224C718(SysTask *param0, void *param1);
|
||||
void ov17_0224C89C(UnkStruct_ov17_0224DF54 *param0, const UnkStruct_ov17_0224EDE0 *param1);
|
||||
static void ov17_0224CA28(SysTask *param0, void *param1);
|
||||
static void ov17_0224CAC0(UnkSPLStruct6 *param0);
|
||||
static void ov17_0224CAC0(SPLEmitter *param0);
|
||||
static void ov17_0224CB00(UnkStruct_ov17_0224DF54 *param0, int param1, int param2);
|
||||
static void ov17_0224CB80(UnkStruct_ov17_0224DF54 *param0, int param1);
|
||||
void ov17_0224CD84(UnkStruct_ov17_0224DF54 *param0, u32 param1, u32 param2, int param3, int param4, u16 param5);
|
||||
@ -2391,7 +2391,7 @@ void ov17_0224CA90(UnkStruct_ov17_0224DF54 *param0, u32 param1, s32 param2, s32
|
||||
sub_020146F4(param0->unk_0C, param1, ov17_0224CAC0, param0);
|
||||
}
|
||||
|
||||
static void ov17_0224CAC0(UnkSPLStruct6 *param0)
|
||||
static void ov17_0224CAC0(SPLEmitter *param0)
|
||||
{
|
||||
UnkStruct_ov17_0224DF54 *v0;
|
||||
UnkStruct_ov17_0224CAC0 *v1;
|
||||
|
@ -41,7 +41,7 @@ typedef struct {
|
||||
} UnkStruct_ov77_021D7940;
|
||||
|
||||
static void ov77_021D725C(void);
|
||||
static void ov77_021D7268(UnkSPLStruct6 *param0);
|
||||
static void ov77_021D7268(SPLEmitter *param0);
|
||||
static BOOL ov77_021D7004(UnkStruct_ov77_021D6CFC *param0, const u8 param1);
|
||||
static BOOL ov77_021D7074(UnkStruct_ov77_021D6CFC *param0, const u8 param1);
|
||||
static BOOL ov77_021D70CC(UnkStruct_ov77_021D6CFC *param0, const u8 param1);
|
||||
@ -99,7 +99,7 @@ UnkStruct_02014014 *ov77_021D6CBC(UnkStruct_ov77_021D6CFC *param0)
|
||||
return param0->unk_18;
|
||||
}
|
||||
|
||||
UnkSPLStruct6 *ov77_021D6CD0(UnkStruct_ov77_021D6CFC *param0, int param1)
|
||||
SPLEmitter *ov77_021D6CD0(UnkStruct_ov77_021D6CFC *param0, int param1)
|
||||
{
|
||||
GF_ASSERT(param0 != NULL && param0->unk_18 != NULL);
|
||||
|
||||
@ -376,7 +376,7 @@ static void ov77_021D725C(void)
|
||||
sub_020146C0();
|
||||
}
|
||||
|
||||
static void ov77_021D7268(UnkSPLStruct6 *param0)
|
||||
static void ov77_021D7268(SPLEmitter *param0)
|
||||
{
|
||||
Sprite *v0 = sub_02014764();
|
||||
VecFx32 v1 = { 0, 0, 0 };
|
||||
|
@ -72,7 +72,7 @@ BOOL ov104_022360A8(UnkStruct_ov104_0222E930 *param0);
|
||||
BOOL ov104_022360C0(UnkStruct_ov104_0222E930 *param0);
|
||||
BOOL ov104_02237D84(UnkStruct_ov104_0222E930 *param0);
|
||||
BOOL ov104_02237D98(UnkStruct_ov104_0222E930 *param0);
|
||||
static void ov104_02237C30(UnkSPLStruct6 *param0);
|
||||
static void ov104_02237C30(SPLEmitter *param0);
|
||||
static void ov104_02237C0C(UnkStruct_ov104_0222E930 *param0, UnkStruct_ov104_0223BFFC *param1, u16 param2);
|
||||
static void ov104_0223770C(void *param0);
|
||||
|
||||
@ -580,7 +580,7 @@ static void ov104_02237C0C(UnkStruct_ov104_0222E930 *param0, UnkStruct_ov104_022
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_02237C30(UnkSPLStruct6 *param0)
|
||||
static void ov104_02237C30(SPLEmitter *param0)
|
||||
{
|
||||
VecFx32 v0;
|
||||
VecFx16 v1;
|
||||
|
@ -45,7 +45,7 @@ static int ov118_021D10E8(void);
|
||||
static void ov118_021D110C(OverlayMetadata *param0);
|
||||
static u32 ov118_021D1128(u32 param0, BOOL param1);
|
||||
static u32 ov118_021D114C(u32 param0, BOOL param1);
|
||||
static void ov118_021D10B0(UnkSPLStruct6 *param0);
|
||||
static void ov118_021D10B0(SPLEmitter *param0);
|
||||
|
||||
static const fx32 Unk_ov118_021D1170[][2] = {
|
||||
{ 0xFFFFFFFFFFFFBF8C, 0x2EE0 },
|
||||
@ -217,7 +217,7 @@ static void ov118_021D1028(OverlayMetadata *param0)
|
||||
}
|
||||
}
|
||||
|
||||
static void ov118_021D10B0(UnkSPLStruct6 *param0)
|
||||
static void ov118_021D10B0(SPLEmitter *param0)
|
||||
{
|
||||
OverlayMetadata *v0;
|
||||
|
||||
|
@ -59,7 +59,7 @@ static u32 ov119_021D13B4(u32 param0, BOOL param1);
|
||||
static u32 ov119_021D13D0(u32 param0, BOOL param1);
|
||||
static UnkStruct_02014014 *ov119_021D13EC(int param0);
|
||||
static UnkStruct_02014014 *ov119_021D1434(int param0, int param1, int param2);
|
||||
static void ov119_021D1474(UnkSPLStruct6 *param0);
|
||||
static void ov119_021D1474(SPLEmitter *param0);
|
||||
|
||||
void ov119_021D0D80(void)
|
||||
{
|
||||
@ -474,7 +474,7 @@ void ov119_021D145C(UnkStruct_02014014 *param0)
|
||||
Heap_FreeToHeap(v0);
|
||||
}
|
||||
|
||||
static void ov119_021D1474(UnkSPLStruct6 *param0)
|
||||
static void ov119_021D1474(SPLEmitter *param0)
|
||||
{
|
||||
VecFx32 v0 = { 0, 0, 0 };
|
||||
|
||||
|
@ -29,9 +29,9 @@ enum {
|
||||
};
|
||||
|
||||
typedef struct UnkStruct_02014014_t {
|
||||
UnkSPLStruct1 *unk_00;
|
||||
SPLManager *unk_00;
|
||||
void *unk_04;
|
||||
UnkSPLStruct6 *unk_08;
|
||||
SPLEmitter *unk_08;
|
||||
void *unk_0C;
|
||||
void *unk_10;
|
||||
void *unk_14;
|
||||
@ -566,9 +566,9 @@ int sub_020146C0(void)
|
||||
return count;
|
||||
}
|
||||
|
||||
UnkSPLStruct6 *sub_020146E4(UnkStruct_02014014 *param0, int param1, const VecFx32 *param2)
|
||||
SPLEmitter *sub_020146E4(UnkStruct_02014014 *param0, int param1, const VecFx32 *param2)
|
||||
{
|
||||
UnkSPLStruct6 *v0;
|
||||
SPLEmitter *v0;
|
||||
|
||||
v0 = SPL_0209C56C(param0->unk_00, param1, param2);
|
||||
param0->unk_08 = v0;
|
||||
@ -576,9 +576,9 @@ UnkSPLStruct6 *sub_020146E4(UnkStruct_02014014 *param0, int param1, const VecFx3
|
||||
return v0;
|
||||
}
|
||||
|
||||
UnkSPLStruct6 *sub_020146F4(UnkStruct_02014014 *param0, int param1, UnkFuncPtr_020146F4 param2, void *param3)
|
||||
SPLEmitter *sub_020146F4(UnkStruct_02014014 *param0, int param1, UnkFuncPtr_020146F4 param2, void *param3)
|
||||
{
|
||||
UnkSPLStruct6 *v0;
|
||||
SPLEmitter *v0;
|
||||
|
||||
Unk_021BF614 = param3;
|
||||
v0 = SPL_0209C4D8(param0->unk_00, param1, param2);
|
||||
@ -598,7 +598,7 @@ void sub_02014718(UnkStruct_02014014 *param0)
|
||||
SPL_0209C400(param0->unk_00);
|
||||
}
|
||||
|
||||
void sub_02014724(UnkStruct_02014014 *param0, UnkSPLStruct6 *param1)
|
||||
void sub_02014724(UnkStruct_02014014 *param0, SPLEmitter *param1)
|
||||
{
|
||||
SPL_0209C444(param0->unk_00, param1);
|
||||
}
|
||||
@ -644,14 +644,14 @@ u8 sub_02014790(UnkStruct_02014014 *param0)
|
||||
return param0->unk_DB;
|
||||
}
|
||||
|
||||
void sub_02014798(UnkSPLStruct6 *param0, VecFx16 *param1)
|
||||
void sub_02014798(SPLEmitter *param0, VecFx16 *param1)
|
||||
{
|
||||
*param1 = param0->unk_C0;
|
||||
}
|
||||
|
||||
void sub_020147B0(UnkSPLStruct6 *param0, fx32 param1)
|
||||
void sub_020147B0(SPLEmitter *param0, fx32 param1)
|
||||
{
|
||||
param0->unk_90->unk_00->unk_10 = param1;
|
||||
param0->p_res->unk_00->unk_10 = param1;
|
||||
}
|
||||
|
||||
enum {
|
||||
@ -663,20 +663,20 @@ enum {
|
||||
SPL_FLD_TYPE_CONVERGENCE,
|
||||
};
|
||||
|
||||
static const void *sub_020147B8(UnkSPLStruct6 *param0, int param1)
|
||||
static const void *sub_020147B8(SPLEmitter *param0, int param1)
|
||||
{
|
||||
int v0;
|
||||
int v1;
|
||||
UnkStruct_020147B8 *v2;
|
||||
|
||||
v1 = param0->unk_90->unk_1C;
|
||||
v1 = param0->p_res->unk_1C;
|
||||
|
||||
if (v1 == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (v0 = 0; v0 < v1; v0++) {
|
||||
v2 = ¶m0->unk_90->unk_18[v0];
|
||||
v2 = ¶m0->p_res->unk_18[v0];
|
||||
|
||||
if (v2 == NULL) {
|
||||
continue;
|
||||
@ -721,7 +721,7 @@ static const void *sub_020147B8(UnkSPLStruct6 *param0, int param1)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void sub_02014874(UnkSPLStruct6 *param0, VecFx16 *param1)
|
||||
void sub_02014874(SPLEmitter *param0, VecFx16 *param1)
|
||||
{
|
||||
UnkStruct_02014874 *v0;
|
||||
|
||||
@ -734,7 +734,7 @@ void sub_02014874(UnkSPLStruct6 *param0, VecFx16 *param1)
|
||||
v0->unk_00 = *param1;
|
||||
}
|
||||
|
||||
void sub_02014890(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
void sub_02014890(SPLEmitter *param0, VecFx32 *param1)
|
||||
{
|
||||
UnkStruct_02014890 *v0;
|
||||
|
||||
@ -747,7 +747,7 @@ void sub_02014890(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
v0->unk_00 = *param1;
|
||||
}
|
||||
|
||||
void sub_020148A8(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
void sub_020148A8(SPLEmitter *param0, VecFx32 *param1)
|
||||
{
|
||||
UnkStruct_02014890 *v0;
|
||||
|
||||
@ -762,7 +762,7 @@ void sub_020148A8(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
*param1 = v0->unk_00;
|
||||
}
|
||||
|
||||
void sub_020148DC(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
void sub_020148DC(SPLEmitter *param0, fx16 *param1)
|
||||
{
|
||||
UnkStruct_02014890 *v0;
|
||||
|
||||
@ -775,7 +775,7 @@ void sub_020148DC(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
v0->unk_0C = *param1;
|
||||
}
|
||||
|
||||
void sub_020148F4(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
void sub_020148F4(SPLEmitter *param0, fx16 *param1)
|
||||
{
|
||||
UnkStruct_02014890 *v0;
|
||||
|
||||
@ -789,7 +789,7 @@ void sub_020148F4(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
*param1 = v0->unk_0C;
|
||||
}
|
||||
|
||||
void sub_02014910(UnkSPLStruct6 *param0, u16 *param1)
|
||||
void sub_02014910(SPLEmitter *param0, u16 *param1)
|
||||
{
|
||||
UnkStruct_02014910 *v0;
|
||||
|
||||
@ -802,7 +802,7 @@ void sub_02014910(UnkSPLStruct6 *param0, u16 *param1)
|
||||
v0->unk_00 = *param1;
|
||||
}
|
||||
|
||||
void sub_02014924(UnkSPLStruct6 *param0, u16 *param1)
|
||||
void sub_02014924(SPLEmitter *param0, u16 *param1)
|
||||
{
|
||||
UnkStruct_02014910 *v0;
|
||||
|
||||
@ -816,7 +816,7 @@ void sub_02014924(UnkSPLStruct6 *param0, u16 *param1)
|
||||
*param1 = v0->unk_00;
|
||||
}
|
||||
|
||||
void sub_02014940(UnkSPLStruct6 *param0, u16 *param1)
|
||||
void sub_02014940(SPLEmitter *param0, u16 *param1)
|
||||
{
|
||||
UnkStruct_02014910 *v0;
|
||||
|
||||
@ -829,7 +829,7 @@ void sub_02014940(UnkSPLStruct6 *param0, u16 *param1)
|
||||
v0->unk_02 = *param1;
|
||||
}
|
||||
|
||||
void sub_02014954(UnkSPLStruct6 *param0, u16 *param1)
|
||||
void sub_02014954(SPLEmitter *param0, u16 *param1)
|
||||
{
|
||||
UnkStruct_02014910 *v0;
|
||||
|
||||
@ -843,7 +843,7 @@ void sub_02014954(UnkSPLStruct6 *param0, u16 *param1)
|
||||
*param1 = v0->unk_02;
|
||||
}
|
||||
|
||||
void sub_02014970(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
void sub_02014970(SPLEmitter *param0, VecFx32 *param1)
|
||||
{
|
||||
UnkStruct_02014970 *v0;
|
||||
|
||||
@ -856,7 +856,7 @@ void sub_02014970(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
v0->unk_00 = *param1;
|
||||
}
|
||||
|
||||
void sub_02014988(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
void sub_02014988(SPLEmitter *param0, VecFx32 *param1)
|
||||
{
|
||||
UnkStruct_02014970 *v0;
|
||||
|
||||
@ -871,7 +871,7 @@ void sub_02014988(UnkSPLStruct6 *param0, VecFx32 *param1)
|
||||
*param1 = v0->unk_00;
|
||||
}
|
||||
|
||||
void sub_020149BC(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
void sub_020149BC(SPLEmitter *param0, fx16 *param1)
|
||||
{
|
||||
UnkStruct_02014970 *v0;
|
||||
|
||||
@ -884,7 +884,7 @@ void sub_020149BC(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
v0->unk_0C = *param1;
|
||||
}
|
||||
|
||||
void sub_020149D4(UnkSPLStruct6 *param0, fx16 *param1)
|
||||
void sub_020149D4(SPLEmitter *param0, fx16 *param1)
|
||||
{
|
||||
UnkStruct_02014970 *v0;
|
||||
|
||||
|
@ -30,7 +30,7 @@ static u32 sub_0207C7B0(u32 param0, BOOL param1);
|
||||
static UnkStruct_02014014 *sub_0207C7CC(int param0);
|
||||
static UnkStruct_02014014 *sub_0207C814(int param0, int param1, int param2);
|
||||
static void sub_0207C83C(UnkStruct_02014014 *param0);
|
||||
static void sub_0207C854(UnkSPLStruct6 *param0);
|
||||
static void sub_0207C854(SPLEmitter *param0);
|
||||
|
||||
void sub_0207C63C(void)
|
||||
{
|
||||
@ -170,7 +170,7 @@ void sub_0207C83C(UnkStruct_02014014 *param0)
|
||||
Heap_FreeToHeap(v0);
|
||||
}
|
||||
|
||||
static void sub_0207C854(UnkSPLStruct6 *param0)
|
||||
static void sub_0207C854(SPLEmitter *param0)
|
||||
{
|
||||
VecFx32 v0 = { 0, 0, 0 };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user