diff options
Diffstat (limited to 'src/koopatlas/map.h')
-rw-r--r-- | src/koopatlas/map.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/koopatlas/map.h b/src/koopatlas/map.h new file mode 100644 index 0000000..6f07ddf --- /dev/null +++ b/src/koopatlas/map.h @@ -0,0 +1,60 @@ +#include "koopatlas/core.h" + +// Can't remember why I had this. Who cares +#define GEKKO +#include "rvl/mtx.h" +#include "rvl/GXEnum.h" +#include "rvl/GXStruct.h" +#include "rvl/GXTransform.h" +#include "rvl/GXGeometry.h" +#include "rvl/GXDispList.h" +#include "rvl/GXLighting.h" +#include "rvl/GXTev.h" +#include "rvl/GXTexture.h" +#include "rvl/GXCull.h" +#include "rvl/GXPixel.h" +#include "rvl/GXBump.h" +#include "rvl/GXVert.h" +#include "rvl/vifuncs.h" + +class dWMMap_c : public dBase_c { + public: + dWMMap_c(); + + int onCreate(); + int onDelete(); + int onExecute(); + int onDraw(); + + class renderer_c : public m3d::proc_c { + public: + mAllocator_c allocator; + + void drawOpa(); + void drawXlu(); + + private: + void drawTiles(); + + void beginRendering(); + void endRendering(); + + void renderTileLayer(dKPLayer_s *layer, dKPLayer_s::sector_s *sector); + + void loadTexture(GXTexObj *obj); + + void loadCamera(); + + GXTexObj *currentTexture; + Mtx renderMtx; + float baseZ; + + int minX, minY, maxX, maxY; + }; + + renderer_c renderer; + + static dWMMap_c *build(); + static dWMMap_c *instance; +}; + |