mirror of https://github.com/zeldaret/tp.git
514 lines
15 KiB
C++
514 lines
15 KiB
C++
#ifndef D_METER_D_METER2_INFO_H
|
|
#define D_METER_D_METER2_INFO_H
|
|
|
|
#include "JSystem/JUtility/JUTTexture.h"
|
|
#include "d/d_resorce.h"
|
|
#include "d/menu/d_menu_window.h"
|
|
#include "d/meter/d_meter2.h"
|
|
#include "d/msg/d_msg_flow.h"
|
|
#include "d/pane/d_pane_class.h"
|
|
#include "dolphin/types.h"
|
|
#include "f_op/f_op_actor.h"
|
|
|
|
struct JMSMesgEntry_c {
|
|
/* 0x00 */ u32 mStringOffset;
|
|
/* 0x04 */ u16 mStringId;
|
|
/* 0x06 */ u16 field_0x04;
|
|
/* 0x08 */ u8 field_0x08;
|
|
/* 0x09 */ u8 field_0x09;
|
|
/* 0x0A */ u8 field_0x0a;
|
|
/* 0x0B */ u8 field_0x0b;
|
|
/* 0x0C */ u8 field_0x0c;
|
|
/* 0x0D */ u8 field_0x0d;
|
|
/* 0x0E */ u8 field_0x0e;
|
|
/* 0x0F */ u8 field_0x0f;
|
|
/* 0x10 */ u8 field_0x10;
|
|
/* 0x11 */ u8 field_0x11;
|
|
/* 0x12 */ u8 field_0x12;
|
|
/* 0x13 */ u8 field_0x13;
|
|
}; // Size: 0x14
|
|
|
|
struct dMenu_LetterData {
|
|
u16 mSubject;
|
|
u16 mName;
|
|
u16 mText;
|
|
u16 mEventFlag;
|
|
};
|
|
|
|
struct dMenu_Letter {
|
|
static u16 getLetterSubject(int idx) { return letter_data[idx].mSubject; }
|
|
static u16 getLetterName(int idx) { return letter_data[idx].mName; }
|
|
static u16 getLetterText(int idx) { return letter_data[idx].mText; }
|
|
static u16 getLetterEventFlag(int idx) { return letter_data[idx].mEventFlag; }
|
|
|
|
static dMenu_LetterData letter_data[64];
|
|
};
|
|
|
|
class dMw_c;
|
|
class dMeter2_c;
|
|
class J2DPicture;
|
|
class dMeterMap_c;
|
|
|
|
enum dMeter2Info_warpStatus {
|
|
/* 0x3 */ WARP_DECIDED = 3,
|
|
};
|
|
|
|
class dMeter2Info_c {
|
|
public:
|
|
class WarpInfo_c {
|
|
public:
|
|
/* 0x00 */ char mStageName[8];
|
|
/* 0x08 */ cXyz mPosition;
|
|
/* 0x14 */ s16 mAngle;
|
|
/* 0x16 */ u8 mRoomNo;
|
|
/* 0x17 */ u8 unk79;
|
|
/* 0x18 */ u8 mWarpPlayerNo;
|
|
};
|
|
|
|
dMeter2Info_c();
|
|
virtual ~dMeter2Info_c();
|
|
void init(void);
|
|
int setFloatingMessage(u16, s16, bool);
|
|
int setFloatingFlow(u16, s16, bool);
|
|
int isFloatingMessageVisible(void);
|
|
int decFloatingMessageTimer(void);
|
|
void resetFloatingMessage(void);
|
|
void decMsgKeyWaitTimer(void);
|
|
void getString(u32, char*, JMSMesgEntry_c*); // define JMSMesgEntry
|
|
void getStringKana(u32, char*, JMSMesgEntry_c*);
|
|
void getStringKanji(u32, char*, JMSMesgEntry_c*);
|
|
f32 getStringLength(J2DTextBox*, char*);
|
|
f32 getStringLength(JUTFont*, f32, f32, char*);
|
|
void onDirectUseItem(int);
|
|
bool isDirectUseItem(int);
|
|
int setMeterString(s32);
|
|
void resetWarpStatus(void);
|
|
void warpInProc(void);
|
|
void warpOutProc(void);
|
|
void resetMeterString(void);
|
|
void setWarpInfo(const char*, const cXyz&, s16, u8, u8, u8);
|
|
u8 getItemType(u8);
|
|
int readItemTexture(u8, void*, J2DPicture*, void*, J2DPicture*, void*, J2DPicture*, void*,
|
|
J2DPicture*, int);
|
|
void setItemColor(u8, J2DPicture*, J2DPicture*, J2DPicture*, J2DPicture*);
|
|
s16 get2ndTexture(u8);
|
|
s16 get3rdTexture(u8);
|
|
s16 get4thTexture(u8);
|
|
void set1stColor(u8, J2DPicture*);
|
|
void set2ndColor(u8, J2DPicture*);
|
|
void set3rdColor(u8, J2DPicture*);
|
|
void set4thColor(u8, J2DPicture*);
|
|
void setHotSpringTimer(u8);
|
|
void decHotSpringTimer(void);
|
|
void changeWater(u8);
|
|
void setMiniGameItem(u8);
|
|
void resetMiniGameItem(bool);
|
|
void setMiniGameCount(s8);
|
|
void setSaveStageName(const char*);
|
|
|
|
void setWindowStatus(u8 status) {
|
|
unk186 = mWindowStatus;
|
|
mWindowStatus = status;
|
|
}
|
|
u8& getDirectUseItem() { return mDirectUseItem; }
|
|
dMeterMap_c* getMeterMapClass() { return mMeterMap; }
|
|
void setMenuWindowClass(dMw_c* p_menu) { mMenuWindowClass = p_menu; }
|
|
dMw_c* getMenuWindowClass() { return mMenuWindowClass; }
|
|
void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; }
|
|
u16 getOilGaugeBackUp() { return mOilGaugeBackUp; }
|
|
u8 getWarpStatus() { return mWarpStatus; }
|
|
u8 getWarpRoomNo() { return mWarpInfo.mRoomNo; }
|
|
u8 getWarpPlayerNo() { return mWarpInfo.mWarpPlayerNo; }
|
|
cXyz& getWarpPos() { return mWarpInfo.mPosition; }
|
|
const char* getWarpStageName() { return mWarpInfo.mStageName; }
|
|
void setNowCount(u8 count) { mNowCount = count; }
|
|
void setMaxCount(u8 count) { mMaxCount = count; }
|
|
void allUseButton() { mUseButton = -1; }
|
|
bool isUseButton(int param_0) { return param_0 & mUseButton; }
|
|
void setMeterMapClass(dMeterMap_c* p_map) { mMeterMap = p_map; }
|
|
void resetGameStatus() { mGameStatus = 0; }
|
|
void setMapStatus(u8 status) { mMapStatus = status; }
|
|
u8 getMapStatus() { return mMapStatus; }
|
|
void setPauseStatus(u8 status) { mPauseStatus = status; }
|
|
void resetPauseStatus() { mPauseStatus = 0; }
|
|
u8 getPauseStatus() { return mPauseStatus; }
|
|
bool isGameStatus(int status) { return mGameStatus & status; }
|
|
void setMapKeyDirection(u16 direction) { mMapKeyDirection = direction; }
|
|
bool isSub2DStatus(int flag) { return mSub2DStatus & (1 << flag); }
|
|
void offMenuInForce(int flag) { unk152 &= ~(1 << flag); }
|
|
bool isMenuInForce(int flag) { return unk152 & (1 << flag); }
|
|
u16 getMapKeyDirection() { return mMapKeyDirection; }
|
|
u8 getWindowStatus() { return mWindowStatus; }
|
|
void setMsgResource(void* res) { mMsgResource = res; }
|
|
void setStageMsgResource(void* res) { mStageMsgResource = res; }
|
|
void setMsgUnitResource(void* res) { mMsgUnitResource = res; }
|
|
void* getMsgResource() { return mMsgResource; }
|
|
void* getStageMsgResource() { return mStageMsgResource; }
|
|
void* getMsgUnitResource() { return mMsgUnitResource; }
|
|
u8 getLightDropGetFlag(int i) { return mLightDropGetFlag[i]; }
|
|
u32 getMeterStringType() { return mMeterString; }
|
|
void setMeterClass(dMeter2_c* meter) { mMeterClass = meter; }
|
|
void onLifeGaugeSE() { mLifeGaugeSE = 1; }
|
|
void offLifeGaugeSE() { mLifeGaugeSE = 0; }
|
|
u8 getLifeGaugeSE() { return mLifeGaugeSE; }
|
|
const char* getSaveStageName() { return mSaveStageName; }
|
|
void onShopTalkFlag() { mShopTalkFlag = true; }
|
|
void setLightDropGetFlag(int index, u8 flag) { mLightDropGetFlag[index] = flag; }
|
|
u8 getRentalBombBag() { return mRentalBombBagIdx; }
|
|
void setTableMapRegionNo(u8 regionNo) { mTableMapRegionNo = regionNo; }
|
|
dMeter2_c* getMeterClass() { return mMeterClass; }
|
|
u8 getMiniGameItemSetFlag() { return mMiniGameItemSetFlag; }
|
|
s16 getMsgKeyWaitTimer() { return mMsgKeyWaitTimer; }
|
|
|
|
public:
|
|
/* 0x04 */ u8 unk4[4];
|
|
/* 0x08 */ u64 unk8;
|
|
/* 0x10 */ void* mMsgResource;
|
|
/* 0x14 */ void* mStageMsgResource;
|
|
/* 0x18 */ void* mMsgUnitResource;
|
|
/* 0x1C */ dMeter2_c* mMeterClass;
|
|
/* 0x20 */ dMeterMap_c* mMeterMap;
|
|
/* 0x24 */ dMw_c* mMenuWindowClass;
|
|
/* 0x28 */ CPaneMgr* mMeterItemPanePtr[4];
|
|
/* 0x38 */ WarpInfo_c mWarpInfo;
|
|
/* 0x54 */ f32 unk84;
|
|
/* 0x58 */ f32 unk88;
|
|
/* 0x5C */ f32 unk92;
|
|
/* 0x60 */ f32 unk96;
|
|
/* 0x64 */ f32 unk100;
|
|
/* 0x68 */ f32 unk104;
|
|
/* 0x6C */ f32 unk108;
|
|
/* 0x70 */ f32 m2DWidth;
|
|
/* 0x74 */ f32 m2DHeight;
|
|
/* 0x78 */ f32 m2DPosH;
|
|
/* 0x7C */ f32 m2DPosV;
|
|
/* 0x80 */ f32 unk128;
|
|
/* 0x84 */ u32 mTimeMs;
|
|
/* 0x88 */ u32 mMsgTimeMs;
|
|
/* 0x8C */ s32 mMeterString;
|
|
/* 0x90 */ u32 mTempBits;
|
|
/* 0x94 */ s16 mMsgKeyWaitTimer;
|
|
/* 0x96 */ u16 mHorseLifeCount;
|
|
/* 0x98 */ u16 unk152;
|
|
/* 0x9A */ u16 mHotSpringTimer[4];
|
|
/* 0xA2 */ u16 mSub2DStatus;
|
|
/* 0xA4 */ u16 mFloatingFlowID;
|
|
/* 0xA6 */ u16 mFloatingMessageID;
|
|
/* 0xA8 */ s16 mFloatingMessageTimer;
|
|
/* 0xAA */ u16 mMapKeyDirection;
|
|
/* 0xAC */ u16 mBlinkButton;
|
|
/* 0xAE */ u16 mUseButton;
|
|
/* 0xB0 */ u16 mGameStatus;
|
|
/* 0xB2 */ u16 mTouchKeyCheck;
|
|
/* 0xB4 */ u16 mWindowAccept;
|
|
/* 0xB6 */ u16 mOilGaugeBackUp;
|
|
/* 0xB8 */ u8 mDirectUseItem;
|
|
/* 0xB9 */ u8 mWindowStatus;
|
|
/* 0xBA */ u8 unk186;
|
|
/* 0xBB */ u8 mMaxCount;
|
|
/* 0xBC */ u8 mNowCount;
|
|
/* 0xBD */ bool mShopTalkFlag;
|
|
/* 0xBE */ u8 unk190;
|
|
/* 0xBF */ u8 mMapStatus;
|
|
/* 0xC0 */ u8 mWarpStatus;
|
|
/* 0xC1 */ u8 mPauseStatus;
|
|
/* 0xC2 */ u8 mGameOverType;
|
|
/* 0xC3 */ u8 mInsectSelectType;
|
|
/* 0xC4 */ u8 mSaveSelItemIdx[4];
|
|
/* 0xC8 */ u8 mSaveMixItemIdx[4];
|
|
/* 0xCC */ u8 mSaveBombNum;
|
|
/* 0xCD */ u8 mSaveArrowNum;
|
|
/* 0xCE */ u8 mSaveBowItem;
|
|
/* 0xCF */ u8 mSaveBombItem;
|
|
/* 0xD0 */ u8 mSaveSelItemIdxMG[4];
|
|
/* 0xD4 */ u8 mSaveMixItemIdxMG[4];
|
|
/* 0xD8 */ u8 mSaveBombNumMG;
|
|
/* 0xD9 */ u8 mSaveArrowNumMG;
|
|
/* 0xDA */ u8 mSaveBowItemMG;
|
|
/* 0xDB */ u8 mSaveBombItemMG;
|
|
/* 0xDC */ u8 mRentalBombBagIdx;
|
|
/* 0xDD */ u8 mMiniGameItemSetFlag; // 1: rented in game, 3: rented not in game
|
|
/* 0xDE */ u8 mMiniGameCount;
|
|
/* 0xDF */ u8 mCollectCursorPosX;
|
|
/* 0xE0 */ u8 mCollectCursorPosY;
|
|
/* 0xE1 */ u8 mTableMapRegionNo;
|
|
/* 0xE2 */ u8 mGoldWolfMapType;
|
|
/* 0xE3 */ u8 mLightDropGetFlag[3];
|
|
/* 0xE6 */ u8 mLifeGaugeSE;
|
|
/* 0xE7 */ u8 unk231;
|
|
/* 0xE8 */ u8 mItemExplainWindowStatus;
|
|
/* 0xE9 */ char mSaveStageName[8];
|
|
/* 0xF1 */ bool mFloatingMessageWakuVisible;
|
|
/* 0xF2 */ u8 mMapDrugFlag;
|
|
/* 0xF3 */ u8 unk243[5];
|
|
};
|
|
|
|
extern dMeter2Info_c g_meter2_info;
|
|
|
|
void dMeter2Info_setSword(u8, bool);
|
|
void dMeter2Info_setCloth(u8 i_clothId, bool param_1);
|
|
void dMeter2Info_setShield(u8 i_itemId, bool param_1);
|
|
void dMeter2Info_set2DVibration();
|
|
void dMeter2Info_set2DVibrationM();
|
|
static void dMeter2Info_setFloatingMessage(u16 pMessageID, s16 pMessageTimer, bool pWakuVisible);
|
|
static void dMeter2Info_offUseButton(int pButton);
|
|
|
|
inline void dMeter2Info_Initialize() {
|
|
g_meter2_info.init();
|
|
}
|
|
|
|
inline dMeterMap_c* dMeter2Info_getMeterMapClass() {
|
|
return g_meter2_info.getMeterMapClass();
|
|
}
|
|
|
|
inline dMw_c* dMeter2Info_getMenuWindowClass() {
|
|
return g_meter2_info.getMenuWindowClass();
|
|
}
|
|
|
|
inline void dMeter2Info_setWindowStatus(u8 status) {
|
|
g_meter2_info.setWindowStatus(status);
|
|
}
|
|
|
|
inline void dMeter2Info_getString(u32 param_0, char* param_1, JMSMesgEntry_c* param_2) {
|
|
g_meter2_info.getString(param_0, param_1, param_2);
|
|
}
|
|
|
|
inline void dMeter2Info_setHotSpringTimer(u8 time) {
|
|
g_meter2_info.setHotSpringTimer(time);
|
|
}
|
|
|
|
inline u16 dMeter2Info_getOilGaugeBackUp() {
|
|
return g_meter2_info.getOilGaugeBackUp();
|
|
}
|
|
|
|
inline void dMeter2Info_setSaveStageName(const char* name) {
|
|
g_meter2_info.setSaveStageName(name);
|
|
}
|
|
|
|
inline u8 dMeter2Info_getWarpStatus() {
|
|
return g_meter2_info.getWarpStatus();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getWarpRoomNo() {
|
|
return g_meter2_info.getWarpRoomNo();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getWarpPlayerNo() {
|
|
return g_meter2_info.getWarpPlayerNo();
|
|
}
|
|
|
|
inline cXyz& dMeter2Info_getWarpPos() {
|
|
return g_meter2_info.getWarpPos();
|
|
}
|
|
|
|
inline const char* dMeter2Info_getWarpStageName() {
|
|
return g_meter2_info.getWarpStageName();
|
|
}
|
|
|
|
inline void dMeter2Info_setNowCount(u8 count) {
|
|
g_meter2_info.setNowCount(count);
|
|
}
|
|
|
|
inline void dMeter2Info_setMaxCount(u8 count) {
|
|
g_meter2_info.setMaxCount(count);
|
|
}
|
|
|
|
inline bool dMeter2Info_isDirectUseItem(int param_0) {
|
|
return g_meter2_info.isDirectUseItem(param_0);
|
|
}
|
|
|
|
inline bool dMeter2Info_isUseButton(int param_0) {
|
|
return g_meter2_info.isUseButton(param_0);
|
|
}
|
|
|
|
inline void dMeter2Info_setMeterMapClass(dMeterMap_c* p_map) {
|
|
g_meter2_info.setMeterMapClass(p_map);
|
|
}
|
|
|
|
inline void dMeter2Info_decHotSpringTimer() {
|
|
g_meter2_info.decHotSpringTimer();
|
|
}
|
|
|
|
inline void dMeter2Info_allUseButton() {
|
|
g_meter2_info.allUseButton();
|
|
}
|
|
|
|
inline void i_dMeter2Info_offUseButton(int flag) {
|
|
g_meter2_info.offUseButton(flag);
|
|
}
|
|
|
|
inline void dMeter2Info_resetGameStatus() {
|
|
g_meter2_info.resetGameStatus();
|
|
}
|
|
|
|
inline void dMeter2Info_setMapStatus(u8 status) {
|
|
g_meter2_info.setMapStatus(status);
|
|
}
|
|
|
|
inline u8 dMeter2Info_getMapStatus() {
|
|
return g_meter2_info.getMapStatus();
|
|
}
|
|
|
|
inline void dMeter2Info_setPauseStatus(u8 status) {
|
|
g_meter2_info.setPauseStatus(status);
|
|
}
|
|
|
|
inline void dMeter2Info_resetPauseStatus() {
|
|
g_meter2_info.resetPauseStatus();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getPauseStatus() {
|
|
return g_meter2_info.getPauseStatus();
|
|
}
|
|
|
|
inline bool dMeter2Info_isGameStatus(int status) {
|
|
return g_meter2_info.isGameStatus(status);
|
|
}
|
|
|
|
inline void dMeter2Info_setMapKeyDirection(u16 direction) {
|
|
g_meter2_info.setMapKeyDirection(direction);
|
|
}
|
|
|
|
inline bool dMeter2Info_isSub2DStatus(int flag) {
|
|
return g_meter2_info.isSub2DStatus(flag);
|
|
}
|
|
|
|
inline void dMeter2Info_offMenuInForce(int flag) {
|
|
g_meter2_info.offMenuInForce(flag);
|
|
}
|
|
|
|
inline bool dMeter2Info_isMenuInForce(int flag) {
|
|
return g_meter2_info.isMenuInForce(flag);
|
|
}
|
|
|
|
inline void dMeter2Info_setMenuWindowClass(dMw_c* p_menu) {
|
|
g_meter2_info.setMenuWindowClass(p_menu);
|
|
}
|
|
|
|
inline void dMeter2Info_resetWarpStatus() {
|
|
g_meter2_info.resetWarpStatus();
|
|
}
|
|
|
|
inline u16 dMeter2Info_getMapKeyDirection() {
|
|
return g_meter2_info.getMapKeyDirection();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getWindowStatus() {
|
|
return g_meter2_info.getWindowStatus();
|
|
}
|
|
|
|
inline void dMeter2Info_setMsgResource(void* res) {
|
|
g_meter2_info.setMsgResource(res);
|
|
}
|
|
|
|
inline void dMeter2Info_setStageMsgResource(void* res) {
|
|
g_meter2_info.setStageMsgResource(res);
|
|
}
|
|
|
|
inline void dMeter2Info_setMsgUnitResource(void* res) {
|
|
g_meter2_info.setMsgUnitResource(res);
|
|
}
|
|
|
|
inline void* dMeter2Info_getMsgResource() {
|
|
return g_meter2_info.getMsgResource();
|
|
}
|
|
|
|
inline void* dMeter2Info_getStageMsgResource() {
|
|
return g_meter2_info.getStageMsgResource();
|
|
}
|
|
|
|
inline void* dMeter2Info_getMsgUnitResource() {
|
|
return g_meter2_info.getMsgUnitResource();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getLightDropGetFlag(int i) {
|
|
return g_meter2_info.getLightDropGetFlag(i);
|
|
}
|
|
|
|
inline s32 dMeter2Info_getMeterStringType() {
|
|
return g_meter2_info.getMeterStringType();
|
|
}
|
|
|
|
inline void dMeter2Info_setMeterClass(dMeter2_c* meter) {
|
|
g_meter2_info.setMeterClass(meter);
|
|
}
|
|
|
|
inline void dMeter2Info_onLifeGaugeSE() {
|
|
g_meter2_info.onLifeGaugeSE();
|
|
}
|
|
|
|
inline void dMeter2Info_offLifeGaugeSE() {
|
|
g_meter2_info.offLifeGaugeSE();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getLifeGaugeSE() {
|
|
return g_meter2_info.getLifeGaugeSE();
|
|
}
|
|
|
|
inline const char* dMeter2Info_getSaveStageName() {
|
|
return g_meter2_info.getSaveStageName();
|
|
}
|
|
|
|
inline void dMeter2Info_onShopTalkFlag() {
|
|
g_meter2_info.onShopTalkFlag();
|
|
}
|
|
|
|
inline void dMeter2Info_setLightDropGetFlag(int index, u8 flag) {
|
|
g_meter2_info.setLightDropGetFlag(index, flag);
|
|
}
|
|
|
|
inline u8 dMeter2Info_getRentalBombBag() {
|
|
return g_meter2_info.getRentalBombBag();
|
|
}
|
|
|
|
inline u8 dMeter2Info_getMiniGameItemSetFlag() {
|
|
return g_meter2_info.getMiniGameItemSetFlag();
|
|
}
|
|
|
|
inline void dMeter2Info_setMiniGameItem(u8 item) {
|
|
g_meter2_info.setMiniGameItem(item);
|
|
}
|
|
|
|
inline void dMeter2Info_resetMiniGameItem(bool param_0) {
|
|
g_meter2_info.resetMiniGameItem(param_0);
|
|
}
|
|
|
|
inline void dMeter2Info_setTableMapRegionNo(u8 regionNo) {
|
|
g_meter2_info.setTableMapRegionNo(regionNo);
|
|
}
|
|
|
|
inline void dMeter2Info_changeWater(u8 bottleIdx) {
|
|
g_meter2_info.changeWater(bottleIdx);
|
|
}
|
|
|
|
inline void dMeter2Info_warpInProc() {
|
|
g_meter2_info.warpInProc();
|
|
}
|
|
|
|
inline void dMeter2Info_warpOutProc() {
|
|
g_meter2_info.warpOutProc();
|
|
}
|
|
|
|
inline dMeter2_c* dMeter2Info_getMeterClass() {
|
|
return g_meter2_info.getMeterClass();
|
|
}
|
|
|
|
inline s16 dMeter2Info_getMsgKeyWaitTimer() {
|
|
return g_meter2_info.getMsgKeyWaitTimer();
|
|
}
|
|
|
|
inline void dMeter2Info_onDirectUseItem(int param_0) {
|
|
g_meter2_info.onDirectUseItem(param_0);
|
|
}
|
|
|
|
inline void dMeter2Info_setFloatingFlow(u16 param_0, s16 param_1, bool param_2) {
|
|
g_meter2_info.setFloatingFlow(param_0, param_1, param_2);
|
|
}
|
|
|
|
char* dMeter2Info_getNumberTextureName(int pIndex);
|
|
void dMeter2Info_recieveLetter();
|
|
u8 dMeter2Info_getNewLetterNum();
|
|
int dMeter2Info_setNewLetterSender();
|
|
|
|
#endif /* D_METER_D_METER2_INFO_H */
|