SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
LightFunction.hpp
1#pragma once
2
3#include <revolution.h>
4#include "Game/Map/LightDataHolder.hpp"
5#include "Game/Map/LightZoneDataHolder.hpp"
6#include "JSystem/JGeometry/TVec.hpp"
7
8class JMapInfo;
10struct PointLightInfo;
11class ResourceHolder;
12class ActorLightCtrl;
13
14namespace {
15 void loadLightDiffuse(_GXColor color, const TVec3f &rPos, _GXLightID lightID) {
16 GXLightObj lightObj;
17
18 GXInitLightPos(&lightObj, rPos.x, rPos.y, rPos.z);
19 GXInitLightAttn(&lightObj, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f);
20
21 _GXColor new_color(color);
22 GXInitLightColor(&lightObj, new_color);
23 GXLoadLightObjImm(&lightObj, lightID);
24 }
25
26 void getDataActorLightInfo(JMapInfo *, int, ActorLightInfo *, const char *);
27};
28
30public:
31 static void initLightRegisterAll();
32 static void initLightData();
33 static ResourceHolder* loadLightArchive();
34 static s32 createLightDataParser(JMapInfo **);
35
36 static void loadAllLightWhite();
37
38 static AreaLightInfo* getAreaLightInfo(const ZoneLightID &);
39
40 static void loadActorLightInfo(const ActorLightInfo *);
41
42 static void getAreaLightLightData(JMapInfo *, int, AreaLightInfo *);
43 static const char* getDefaultAreaLightName();
44
45 static s32 createZoneDataParser(const char *, JMapInfo **);
46
47 static void loadPointLightInfo(const PointLightInfo *);
48
49 static void loadLightInfoCoin(const LightInfoCoin *);
50
51 static void registerLightAreaHolder(LightAreaHolder *);
52
53 static void calcLightWorldPos(TVec3f *, const LightInfo &);
54
55 static void registerPlayerLightCtrl(const ActorLightCtrl *);
56};