Files
st/libs/nns/include/nns/anim.h
T
Yanis 453db24d41 Misc Stuff 6 (#78)
* gcc fixes

* document random things in UnkStruct_027e09b8_00

* match func_ov001_020ba670 and rabbit docs

* match func_ov026_0211f394

* fix build issues

* match func_ov026_0211e3e0

* match func_ov026_02102924

* move structs to header

* document train rope thing

* MapObject OK and ActorRef stuff

* match more actor funcs

* fix regressions

* fix build issues

* more regressions fixes

* name keyt grab func

* UnkSubStruct19 -> CellAnimObject (based on the only assert string)

* fix build issues due to merge

* Actor::mUnk_4C -> Actor::mState + related changes

* create GetActorPtr template inline for Actor_c4

* ActorUnk_ov000_020a8bb0 -> Actor_Derived1

* actor: add comments about mUnk_50/52 and change type of mAngle
2026-06-17 22:20:45 +02:00

56 lines
1.7 KiB
C

#pragma once
#include <nitro/math.h>
#include <types.h>
#ifdef __cplusplus
extern "C" {
#endif
// note: some of those names are from an assert inside `CellAnimObject::func_ov000_020609c4`
typedef struct AnimCallbackFunctor {
// `unk_00` is function kind? in `func_020075ec` it's calling `pFunc` with one arg when set to 2 or 3
// and in `func_02007498` it goes with two when set to 1
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ void *pFunc;
/* 0C */ unk32 unk_0C;
} AnimCallbackFunctor; // size = 0x10
typedef struct AnimController {
/* 00 */ void *unk_00;
/* 04 */ void *unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ unk32 unk_0C; // pause the animation timer
/* 10 */ unk32 unk_10; // animation timer
/* 14 */ unk32 unk_14; // animation speed (also affects above timer)
/* 18 */ unk32 unk_18;
/* 1C */ void *unk_1C; // pointer to animation bank ("ABNK")
/* 20 */ AnimCallbackFunctor callbackFunctor;
} AnimController; // size = 0x30
typedef struct UnkAnimStruct1 {
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04; // related to the width of the texture (scaling matrix?)
/* 08 */ unk32 unk_08; // related to the height of the texture
/* 0C */ struct { //! TODO: used to be `Vec2us`
u16 x;
u16 y;
} unk_0C;
/* 10 */ unk16 unk_10;
/* 12 */ unk16 unk_12;
} UnkAnimStruct1; // size = 0x14
typedef struct CellAnim {
/* 00 */ AnimController animCtrl;
/* 30 */ void *unk_30; // pointer to somewhere inside "CEBK"
/* 34 */ void *unk_34;
/* 38 */ unk32 unk_38;
/* 3C */ UnkAnimStruct1 unk_3C;
} CellAnim; // size = 0x50
#ifdef __cplusplus
} // extern "C"
#endif