summaryrefslogtreecommitdiff
path: root/include/evw_anime.h
blob: e4c83f1042634d83a0966c7841c370beec377688 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#ifndef EVW_ANIME_H
#define EVW_ANIME_H

#include "ultra64.h"

struct Game;

typedef struct EvwAnimeScroll {
    /* 0x0 */ s8 x; /* x (s) texture position */
    /* 0x1 */ s8 y; /* y (t) texture position */
    /* 0x2 */ u8 width; /* texture width */
    /* 0x3 */ u8 height; /* texture height */
} EvwAnimeScroll; // size = 0x4

typedef struct EvwAnimeColPrim {
    /* 0x0 */ u8 r;
    /* 0x1 */ u8 g;
    /* 0x2 */ u8 b;
    /* 0x3 */ u8 a;
    /* 0x4 */ u8 l;
} EvwAnimeColPrim; // size = 0x5

typedef struct EvwAnimeColEnv {
    /* 0x0 */ u8 r;
    /* 0x1 */ u8 g;
    /* 0x2 */ u8 b;
    /* 0x3 */ u8 a;
} EvwAnimeColEnv; // size = 0x4

typedef struct EvwAnimeColReg {
    /* 0x0 */ u16 frameCount;
    /* 0x2 */ u16 keyframeCount;
    /* 0x4 */ EvwAnimeColPrim* prim;
    /* 0x8 */ EvwAnimeColEnv* env;
    /* 0xC */ u16* keyframes;
} EvwAnimeColReg; // size = 0x10

typedef struct EvwAnimeTexAnime {
    /* 0x0 */ u16 frameCount; /* total frames in the animation */
    /* 0x2 */ u16 keyframeCount; /* number of animation keyframes */
    /* 0x4 */ void** textureTable; /* list of each texture */
    /* 0x8 */ u8* animationPattern; /* list of which texture to use per keyframe (runs at 30 FPS) */
    /* 0xC */ u16* keyframes; /* list of keyframe frame indices */
} EvwAnimeTexAnime; // size = 0x10

typedef struct EvwAnimeData {
    /* 0x0 */ s8 segment; /* Negative segments signal the end of the animation data array */
    /* 0x2 */ s16 type;
    /* 0x4 */ void* dataPtr;
} EvwAnimeData; // size = 0x8

// void func_800549C0_jp();
// void func_80054A28_jp();
// void func_80054A94_jp();
// void func_80054B44_jp();
// void func_80054BB0_jp();
// void func_80054C88_jp();
// void morf_calc();
// void func_80054D3C_jp();
// void func_80054F10_jp();
// void func_80055214_jp();
// void func_80055248_jp();
// void func_800554D8_jp();
void Evw_Anime_Set(struct Game*,EvwAnimeData*);

#endif