mirror of
https://github.com/HarbourMasters/2ship2harkinian.git
synced 2024-11-27 08:10:31 +00:00
2332f63f5a
Co-authored-by: Louis <35883445+louist103@users.noreply.github.com> Co-authored-by: Nicholas Estelami <NEstelami@users.noreply.github.com> Co-authored-by: Random06457 <28494085+Random06457@users.noreply.github.com>
92 lines
2.7 KiB
C
92 lines
2.7 KiB
C
#ifndef Z64SKYBOX_H
|
|
#define Z64SKYBOX_H
|
|
|
|
#include "PR/ultratypes.h"
|
|
#include "PR/gbi.h"
|
|
#include "color.h"
|
|
|
|
#include "z64dma.h"
|
|
#include "z64math.h"
|
|
#include "z64view.h"
|
|
|
|
struct GraphicsContext;
|
|
struct GameState;
|
|
struct PlayState;
|
|
|
|
typedef enum SkyboxId {
|
|
/* 0 */ SKYBOX_NONE,
|
|
/* 1 */ SKYBOX_NORMAL_SKY,
|
|
/* 2 */ SKYBOX_2,
|
|
/* 3 */ SKYBOX_3,
|
|
/* 5 */ SKYBOX_CUTSCENE_MAP = 5
|
|
} SkyboxId;
|
|
|
|
typedef struct SkyboxContext {
|
|
/* 0x000 */ View view;
|
|
/* 0x168 */ void* staticSegments[2][5];
|
|
/* 0x178 */ void* paletteStaticSegment;
|
|
/* 0x17C */ Gfx (*dListBuf)[150];
|
|
/* 0x180 */ Gfx* roomDL;
|
|
/* 0x184 */ Vtx* roomVtx;
|
|
/* 0x188 */ DmaRequest unk188;
|
|
/* 0x1A8 */ DmaRequest unk1A8;
|
|
/* 0x1C8 */ DmaRequest unk1C8;
|
|
/* 0x1E8 */ OSMesgQueue loadQueue;
|
|
/* 0x200 */ OSMesg loadMsg;
|
|
/* 0x204 */ s16 skyboxShouldDraw;
|
|
/* 0x208 */ Vec3f rot;
|
|
/* 0x214 */ Vec3f eye;
|
|
/* 0x220 */ s16 angle;
|
|
/* 0x222 */ Color_RGB8 prim;
|
|
/* 0x225 */ Color_RGB8 env;
|
|
} SkyboxContext; // size = 0x228
|
|
|
|
typedef struct {
|
|
char** file;
|
|
char* palette;
|
|
} SkyboxFiles;
|
|
|
|
#if 0
|
|
typedef struct SkyboxContext {
|
|
/* 0x000 */ View view;
|
|
/* 0x168 */ void* staticSegments[4];
|
|
/* 0x178 */ void* paletteStaticSegment;
|
|
/* 0x17C */ Gfx (*dListBuf)[150];
|
|
/* 0x180 */ Gfx* roomDL;
|
|
/* 0x184 */ Vtx* roomVtx;
|
|
/* 0x188 */ DmaRequest unk188;
|
|
/* 0x1A8 */ DmaRequest unk1A8;
|
|
/* 0x1C8 */ DmaRequest unk1C8;
|
|
/* 0x1E8 */ OSMesgQueue loadQueue;
|
|
/* 0x200 */ OSMesg loadMsg;
|
|
/* 0x204 */ s16 skyboxShouldDraw;
|
|
/* 0x208 */ Vec3f rot;
|
|
/* 0x214 */ Vec3f eye;
|
|
/* 0x220 */ s16 angle;
|
|
/* 0x222 */ Color_RGB8 prim;
|
|
/* 0x225 */ Color_RGB8 env;
|
|
} SkyboxContext; // size = 0x228
|
|
#endif
|
|
|
|
typedef struct struct_801C5F44 {
|
|
/* 0x00 */ s32 unk0;
|
|
/* 0x04 */ s32 unk4;
|
|
/* 0x08 */ s32 unk8;
|
|
/* 0x0C */ s32 unkC;
|
|
/* 0x10 */ s32 unk10;
|
|
} struct_801C5F44; // size = 0x14
|
|
|
|
s32 func_80142440(SkyboxContext* skyboxCtx, Vtx* roomVtx, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7,
|
|
s32 arg8);
|
|
void func_80143148(SkyboxContext* skyboxCtx, s32 arg1);
|
|
void Skybox_Setup(struct GameState* gameState, SkyboxContext* skyboxCtx, s16 skyboxId);
|
|
void func_80143324(struct PlayState* play, SkyboxContext* skyboxCtx, s16 skyboxId);
|
|
void Skybox_Init(struct GameState* gameState, SkyboxContext* skyboxCtx, s16 skyboxId);
|
|
Mtx* Skybox_UpdateMatrix(SkyboxContext* skyboxCtx, f32 x, f32 y, f32 z);
|
|
void Skybox_SetColors(SkyboxContext* skyboxCtx, u8 primR, u8 primG, u8 primB, u8 envR, u8 envG, u8 envB);
|
|
void Skybox_Draw(SkyboxContext* skyboxCtx, struct GraphicsContext* gfxCtx, s16 skyboxId, s16 blend, f32 x, f32 y,
|
|
f32 z);
|
|
void Skybox_Update(SkyboxContext* skyboxCtx);
|
|
|
|
#endif
|