sf64/include/fox_map.h
2024-02-19 10:05:11 -03:00

67 lines
1.4 KiB
C

#ifndef FOX_MAP_H
#define FOX_MAP_H
#include "PR/ultratypes.h"
#include "sf64level.h"
typedef struct {
/* 0x0 */ f32 angle;
/* 0x4 */ f32 x;
/* 0x8 */ f32 y;
/* 0xC */ f32 scale;
} ObjPosition;
typedef enum {
/* 0 */ PL_PATH_BLU,
/* 1 */ PL_PATH_YLW,
/* 2 */ PL_PATH_RED,
/* 3 */ PL_WARP_YLW,
/* 4 */ PL_WARP_RED,
} PathType;
typedef struct {
/* 0x00 */ PathType type;
/* 0x04 */ PlanetId start;
/* 0x08 */ PlanetId end;
/* 0x0C */ s32 length;
/* 0x10 */ char pad10[0x4];
/* 0x14 */ s32 unk_14;
/* 0x18 */ s32 alpha;
} PlanetPath; // size = 0x1C
typedef enum {
/* 0 */ PL_ANIM_STATIC,
/* 1 */ PL_ANIM_BILLBOARD,
/* 2 */ PL_ANIM_ROTATE_Y,
/* 3 */ PL_ANIM_ROTATE_Z,
/* 4 */ PL_ANIM_SPIN,
} PlanetAnim;
typedef struct {
/* 0x0 */ f32 radius;
/* 0x4 */ f32 incl;
/* 0x8 */ f32 tilt;
} OrbitParams;
typedef struct {
/* 0x00 */ PlanetId id;
/* 0x04 */ OrbitParams orbit;
/* 0x10 */ Vec3f pos;
/* 0x1C */ f32 longitude;
/* 0x20 */ f32 scale;
/* 0x24 */ s32 alpha;
/* 0x28 */ PlanetAnim anim;
/* 0x2C */ PlanetId dest1;
/* 0x30 */ PlanetId dest2;
/* 0x34 */ PlanetId warp;
} Planet; // size = 0x38
typedef struct {
/* 0x0 */ u8* texture;
/* 0x4 */ s32 width;
/* 0x8 */ s32 height;
/* 0xC */ f32 xPos;
} TitleCard; // size = 0x10
#endif