mirror of
https://github.com/CraftyBoss/SuperMarioOdysseyOnline.git
synced 2024-12-03 00:17:29 +00:00
45 lines
No EOL
1.3 KiB
C++
45 lines
No EOL
1.3 KiB
C++
/**
|
|
* @file DefineLinker.h
|
|
* @brief Defines a linker for shader source compilation.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "sead/heap.h"
|
|
#include "types.h"
|
|
|
|
namespace agl
|
|
{
|
|
namespace shtxt
|
|
{
|
|
class Clause;
|
|
|
|
class DefineLinker
|
|
{
|
|
public:
|
|
DefineLinker();
|
|
~DefineLinker();
|
|
|
|
void clear();
|
|
bool set(sead::Heap *, agl::shtxt::Clause const *, agl::shtxt::Clause const *);
|
|
bool setImpl(sead::Heap *, agl::shtxt::Clause const *, agl::shtxt::Clause const *, bool);
|
|
void setDirect(agl::shtxt::Clause *, u32, bool);
|
|
void updateHash();
|
|
void replace(sead::Heap *, agl::shtxt::Clause const *, agl::shtxt::Clause const *, bool);
|
|
agl::shtxt::DefineLinker* clone(sead::Heap *, sead::Heap *) const;
|
|
agl::shtxt::DefineLinker* cloneAll(sead::Heap *, sead::Heap *) const;
|
|
|
|
agl::shtxt::DefineLinker* _0; // seems to copy itself twice
|
|
agl::shtxt::DefineLinker* _8;
|
|
agl::shtxt::Clause* _10;
|
|
agl::shtxt::Clause* _18; // hash clause?
|
|
u64 _20;
|
|
agl::shtxt::Clause* _28;
|
|
u64 _30;
|
|
u64 _38;
|
|
s32 mHash; // _40
|
|
s16 _44; // -1
|
|
u16 _46; // 0x101
|
|
};
|
|
};
|
|
}; |