Files
tp/include/JSystem/JStudio/JStudio/fvb.h
T
TakaRikka f8979749e3 j2d / map_path work, d_drawlist / d_attention cleanup (#208)
* work on fop actor / actor mng, daalink, d_a_obj_item

* d_a_title mostly decompiled

* daalink / d_event / JMessage / dmsg_out_font work

* msg_scrn_base / msg_scrn_boss

* some work on mDo machine, d_menu_save, d_tresure, and various

* remove asm

* progress

* finish d_menu_save / d_pane_class_alpha / d_pane_class / rename some data

* rename more data

* remove asm / progress

* match all of d_pane_class

* fixes / some dKankyo doc

* bunch of j2d work. d_drawlist / d_attention cleanup

* progress / asm

* cleanup wip

* decompile JStage

* setup some more JStudio structs

* set up d_demo classes

* some d_demo work

* cleanup dolphin os stuff

* some initial dEvent documentation

* some At collision documentation

* match JUTConsole::doDraw

* dbgs work / split up some of d_a_alink into .inc files

* d_a_alink_spinner work
2022-08-30 15:22:17 -06:00

161 lines
4.4 KiB
C++

#ifndef FVB_H
#define FVB_H
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/JStudio/fvb-data-parse.h"
#include "JSystem/JStudio/JStudio/object-id.h"
#include "global.h"
namespace JStudio {
namespace fvb {
class TControl;
class TParse : public TParse_header_block {
public:
/* 80284ADC */ TParse(JStudio::fvb::TControl*);
/* 80284AFC */ virtual ~TParse();
/* 80284B5C */ virtual bool parseHeader_next(void const**, u32*, u32);
/* 80284BF0 */ virtual bool parseBlock_next(void const**, u32*, u32);
TControl* getControl() const { return pControl_; }
private:
TControl* pControl_;
};
class TObject : public object::TObject_ID {
public:
TObject(const data::TParse_TBlock& block);
TObject(void const* id, u32 id_size, TFunctionValue* value);
explicit TObject(const data::TParse_TBlock& block, TFunctionValue* value)
: TObject_ID(block.get_ID(), block.get_IDSize()), pfv_(value) {
ASSERT(pfv_ != NULL);
}
virtual ~TObject() = 0;
virtual void prepare_data_(const data::TParse_TParagraph::TData& data, TControl* control) = 0;
void prepare(const data::TParse_TBlock& block, TControl* control);
TFunctionValue* const& referFunctionValue() { return pfv_; }
private:
/* 0x0C */ JGadget::TLinkListNode mNode;
/* 0x14 */ TFunctionValue* pfv_;
};
class TFactory {
public:
TFactory() {}
/* 80284918 */ virtual ~TFactory();
/* 80284960 */ virtual TObject* create(JStudio::fvb::data::TParse_TBlock const&);
/* 80284AA0 */ virtual void destroy(JStudio::fvb::TObject*);
};
class TControl {
public:
/* 80284668 */ TControl();
/* 80284698 */ virtual ~TControl();
/* 80284704 */ void appendObject(JStudio::fvb::TObject*);
/* 80284750 */ void removeObject(JStudio::fvb::TObject*);
/* 80284780 */ void destroyObject(JStudio::fvb::TObject*);
/* 802847D0 */ void destroyObject_all();
/* 80284834 */ TObject* getObject(void const*, u32);
/* 802848D4 */ TObject* getObject_index(u32);
TFactory* getFactory() const { return pFactory; }
private:
/* 0x4 */ TFactory* pFactory;
/* 0x8 */ JGadget::TLinkList<TObject, 12> ocObject_;
}; // Size: 0x14
class TObject_composite : public TObject {
public:
/* 80284254 */ TObject_composite(JStudio::fvb::data::TParse_TBlock const&);
/* 802842D4 */ virtual void prepare_data_(JStudio::fvb::data::TParse_TParagraph::TData const&,
JStudio::fvb::TControl*);
/* 80284F78 */ virtual ~TObject_composite() {}
private:
TFunctionValue_composite fnValue;
};
class TObject_constant : public TObject {
public:
/* 80284338 */ TObject_constant(data::TParse_TBlock const&);
/* 80284EF4 */ virtual ~TObject_constant() {}
/* 802843B8 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_constant fnValue;
};
class TObject_transition : public TObject {
public:
/* 802843C8 */ TObject_transition(data::TParse_TBlock const&);
/* 80284E70 */ virtual ~TObject_transition() {}
/* 80284448 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_transition fnValue;
};
class TObject_list : public TObject {
public:
struct ListData {
/* 0x0 */ f32 _0;
/* 0x4 */ u32 _4;
/* 0x8 */ f32 _8[0];
};
/* 80284460 */ TObject_list(data::TParse_TBlock const&);
/* 80284DEC */ virtual ~TObject_list() {}
/* 802844E0 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_list fnValue;
};
class TObject_list_parameter : public TObject {
public:
struct ListData {
u32 _0;
f32 _4[0];
};
/* 80284500 */ TObject_list_parameter(data::TParse_TBlock const&);
/* 80284D68 */ virtual ~TObject_list_parameter() {}
/* 80284580 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_list_parameter fnValue;
};
struct TObject_hermite : public TObject {
public:
struct ListData {
u32 _0; // u : 28, uSize : 4
f32 _4[0];
};
/* 802845B0 */ TObject_hermite(data::TParse_TBlock const&);
/* 80284CE4 */ virtual ~TObject_hermite() {}
/* 80284630 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_hermite fnValue;
};
} // namespace fvb
} // namespace JStudio
#endif /* FVB_H */