diff options
Diffstat (limited to 'include')
| -rwxr-xr-x | include/game.h | 120 | ||||
| -rw-r--r-- | include/newer.h | 1 | 
2 files changed, 108 insertions, 13 deletions
| diff --git a/include/game.h b/include/game.h index 4695ea6..7911880 100755 --- a/include/game.h +++ b/include/game.h @@ -505,6 +505,20 @@ namespace lyt {  	class Group;
  	class GroupContainer;
 +	namespace detail {
 +		class TexCoordAry {
 +			public:
 +				TexCoordAry();
 +				void Free();
 +				void Reserve(u8 count);
 +				void SetSize(u8 count);
 +				void Copy(const void *source, u8 count);
 +
 +				u8 reservedSize, usedSize;
 +				void *data;
 +		};
 +	}
 +
  	class Layout {
  	public:
  		Layout();
 @@ -636,11 +650,17 @@ namespace lyt {  		u8 flag;
  		char name[0x11];
 -		char userdata[8];
 +		char userdata[9];
 -		u8 _D5;
  		u8 paneIsOwnedBySomeoneElse;
  		u8 _D7;
 +
 +		void SetVisible(bool value) {
 +			if (value)
 +				flag |= 1;
 +			else
 +				flag &= ~1;
 +		}
  	};
  	class TextBox : public Pane {
 @@ -657,7 +677,7 @@ namespace lyt {  		uchar GetVtxColorElement(ulong id) const;
  		void SetVtxColorElement(ulong id, uchar value);
 -		virtual void LoadMtx(const DrawInfo &info);
 +		void LoadMtx(const DrawInfo &info);
  		virtual void AllocStringBuffer(u16 size);
  		virtual void FreeStringBuffer();
 @@ -681,6 +701,26 @@ namespace lyt {  		u8 alignment;
  		u8 flags;
  	};
 +
 +	class Picture : public Pane {
 +	public:
 +		Picture(void *, void *); // todo: Picture((res::Picture const *,ResBlockSet const &))
 +		~Picture();
 +
 +		void *GetRuntimeTypeInfo() const;
 +
 +		void DrawSelf(const DrawInfo &info);
 +
 +		ut::Color GetVtxColor(ulong id) const;
 +		void SetVtxColor(ulong id, ut::Color color);
 +		uchar GetVtxColorElement(ulong id) const;
 +		void SetVtxColorElement(ulong id, uchar value);
 +
 +		virtual void Append(const GXTexObj &obj);
 +
 +		ut::Color colours[4];
 +		detail::TexCoordAry texCoords;
 +	};
  }
 @@ -2487,7 +2527,10 @@ namespace nw4r {  				void SetupGXWithColorMapping(Color c1, Color c2);
  			public:
 -				Color colors[8]; // todo: document
 +				Color minColMapping, maxColMapping;
 +				Color vtxColours[4];
 +				Color topColour, bottomColour;
 +
  				u32 modeOfSomeKind;
  				float scaleX;
  				float scaleY;
 @@ -2522,12 +2565,12 @@ namespace nw4r {  				bool IsDrawFlagSet(ulong, ulong) const;
 -				float _4C;
 +				float widthLimit;
  				float charSpace;
 -				float somethingRelatedToLineHeight;
 -				u32 _58;
 +				float lineSpace;
 +				u32 tabWidth;
  				u32 drawFlag;
 -				void *tagProcessorMaybe;
 +				void *tagProcessor;
  		};
  	}
  }
 @@ -2667,7 +2710,7 @@ namespace m2d {  		nw4r::lyt::Pane *getRootPane();
  		nw4r::lyt::Pane *findPaneByName(const char *name) const;
  		nw4r::lyt::TextBox *findTextBoxByName(const char *name) const;
 -		nw4r::lyt::Pane *findPictureByName(const char *name) const; // TODO: change to others
 +		nw4r::lyt::Picture *findPictureByName(const char *name) const;
  		nw4r::lyt::Pane *findWindowByName(const char *name) const;
  		void animate();
 @@ -2705,10 +2748,10 @@ namespace m2d {  		// does NSMBW even use consts? I have no idea. maybe not
 -		void getPanes(const char **names, nw4r::lyt::Pane *output, int count) const;
 -		void getWindows(const char **names, nw4r::lyt::Pane *output, int count) const; // TODO: change to others
 -		void getPictures(const char **names, nw4r::lyt::Pane *output, int count) const;
 -		void getTextBoxes(const char **names, nw4r::lyt::TextBox *output, int count) const;
 +		void getPanes(const char **names, nw4r::lyt::Pane **output, int count) const;
 +		void getWindows(const char **names, nw4r::lyt::Pane **output, int count) const; // TODO: change to others
 +		void getPictures(const char **names, nw4r::lyt::Picture **output, int count) const;
 +		void getTextBoxes(const char **names, nw4r::lyt::TextBox **output, int count) const;
  		void setLangStrings(const char **names, const int *msgIDs, int category, int count);
 @@ -3072,6 +3115,57 @@ namespace mHeap {  };
  void WriteNumberToTextBox(int *number, const int *fieldLength, nw4r::lyt::TextBox *textBox, bool unk); // 800B3B60
 +
 +namespace EGG {
 +	class MsgRes {
 +		private:
 +			const u8 *bmg, *INF1, *DAT1, *STR1, *MID1, *FLW1, *FLI1;
 +		public:
 +			MsgRes(const u8 *bmgFile, u32 unusedParam); // 802D7970
 +			virtual ~MsgRes();
 +
 +			static void parseFormatCode(wchar_t initialTag, const wchar_t *string, u8 *outArgsSize, u32 *outCmd, const wchar_t **args); // 802D7B10
 +
 +			const wchar_t *findStringForMessageID(int category, int message) const; // 0x802D7B50
 +
 +		private:
 +			void setBMG(const u8 *ptr); // 802D7B90
 +			void setINF(const u8 *ptr); // 802D7BA0
 +			void setDAT(const u8 *ptr); // 802D7BB0
 +			void setSTR(const u8 *ptr); // 802D7BC0
 +			void setMID(const u8 *ptr); // 802D7BD0
 +			void setFLW(const u8 *ptr); // 802D7BE0
 +			void setFLI(const u8 *ptr); // 802D7BF0
 +			int identifySectionByMagic(u32 magic) const; // 802D7C00
 +
 +		protected:
 +			struct INFEntry {
 +				u32 stringOffset;
 +			};
 +			const INFEntry *findINFForMessageID(int category, int message) const; // 802D7C90
 +			u32 getEntryFromMID(int index) const; // 802D7D70
 +	};
 +}
 +namespace dScript {
 +	class Res_c : public EGG::MsgRes {
 +		public:
 +			Res_c(const u8 *bmgFile, u32 unusedParam); // 800CE7F0
 +			~Res_c();
 +
 +			u16 getCharScaleForMessageID(int category, int message) const; // 800CE890
 +			u8 getFontIDForMessageID(int category, int message) const; // 800CE8C0
 +	};
 +}
 +class MessageClass {
 +	public:
 +		dDvdLoader_c loader;
 +		void *rawBmgPointer;
 +		dScript::Res_c *msgRes;
 +};
 +
 +dScript::Res_c *GetBMG(); // 800CDD50
 +void WriteBMGToTextBox(nw4r::lyt::TextBox *textBox, dScript::Res_c *res, int category, int message, int argCount, ...); // 0x800C9B50
 +
  extern "C" dAc_Py_c* GetSpecificPlayerActor(int number);
  extern "C" dStageActor_c *CreateActor(u16 classID, int settings, Vec pos, char rot, char layer);
  extern "C" dStageActor_c *Actor_SearchByID(u32 actorID);
 diff --git a/include/newer.h b/include/newer.h index 4f34f81..d98f290 100644 --- a/include/newer.h +++ b/include/newer.h @@ -27,5 +27,6 @@ enum NWRWorld {  NWRWorld NewerWorldForLevelID(int world, int level);  const wchar_t *NewerWorldName(NWRWorld world); +int getStarCoinCount();  #endif /* NEWER_H */ | 
