diff options
Diffstat (limited to '')
458 files changed, 22014 insertions, 0 deletions
@@ -0,0 +1,2 @@ +export WINEPATH="C:\\Program Files (x86)\\DevStudio\\SharedIDE\\bin;C:\\Program Files (x86)\\DevStudio\\VC\\bin" +export INCLUDE="C:\\Program Files (x86)\\DevStudio\\VC\\include;C:\\Program Files (x86)\\DevStudio\\VC\\mfc\\include;C:\\Program Files (x86)\\DevStudio\\VC\\atl\\include" diff --git a/progress.txt b/progress.txt new file mode 100644 index 0000000..1e06322 --- /dev/null +++ b/progress.txt @@ -0,0 +1,233 @@ +SWP - swaps exist +OKi - OK but inlines not checked +OKt - OK but MFC template usage not 100% confirmed + +[U] - unnamed, requires manual diffing +[E] - i've added DLL_EXPORT and checked rigourously for inlines + +[E]OK  src/T2DLL/CDefRsrcPlugin.cpp +[E]OK  src/T2DLL/CFilePlugin.cpp +[E]SWP src/T2DLL/CFilePluginDB.cpp +[E]OKt src/T2DLL/CFilePluginList.cpp +[E]OKi src/T2DLL/CLink.cpp +[E]OK  src/T2DLL/CObjectList.cpp +[E]OK? src/T2DLL/CObjectQueue.cpp +[E]SWP src/T2DLL/CPEFile.cpp +    src/T2DLL/CPieChartView.cpp +    src/T2DLL/CPiledMultiBarChartView.cpp +[E]OKi src/T2DLL/CPlugin.cpp +[E]OK  src/T2DLL/CPluginInfo.cpp +[E]SWP src/T2DLL/CPluginInfoArray.cpp +[E]OK  src/T2DLL/CPluginInfoComparator.cpp +[E]OK  src/T2DLL/CProgramPlugin.cpp +[E]SWP src/T2DLL/CResFile.cpp +[E]OK  src/T2DLL/CResourcePlugin.cpp +[E]SWP src/T2DLL/CToggleButtonDisabled.cpp +[E]OKi src/T2DLL/CTokenizer.cpp +    src/T2DLL/GlobalFunc.cpp +[E]SWP src/T2DLL/LArray.cpp +[E]SWP src/T2DLL/LAttachable.cpp +[E]OK  src/T2DLL/LAttachment.cpp +[E]OK  src/T2DLL/LBroadcaster.cpp +[E]*** src/T2DLL/LComparator.cpp +[E]SWP src/T2DLL/LListener.cpp +[E]OK  src/T2DLL/LPeriodical.cpp +    src/T2DLL/Mmio.cpp +[E]OK  src/T2DLL/T2AdvertisePlugin.cpp +    src/T2DLL/T2AdvertiseTable.cpp +    src/T2DLL/T2Animation.cpp +[E]SWP src/T2DLL/T2Archive.cpp +    src/T2DLL/T2ArrowWnd.cpp +    src/T2DLL/T2Balloon.cpp +    src/T2DLL/T2BalloonWnd.cpp +[E]OK??? src/T2DLL/T2BitImage.cpp (This is inline asm hell) +    src/T2DLL/T2BlackOut.cpp +    src/T2DLL/T2ClassFactory.cpp +OK  src/T2DLL/T2CrossEquipArray.cpp +    src/T2DLL/T2CustomerTableIterator.cpp +SWP src/T2DLL/T2DateTime.cpp (depends on T2TowerDoc,T2WorldPlugin) +SWP src/T2DLL/T2DayLightFilter.cpp +SWP src/T2DLL/T2DayParamDef.cpp +80%,SWP src/T2DLL/T2Dialog.cpp (need all DlgItems, need some radio group class) +90% src/T2DLL/T2DlgItem.cpp (depends on T2ImageObj,T2TowerDoc,T2WorldDef) +    src/T2DLL/T2DlgItemAllPurpose.cpp +    src/T2DLL/T2DlgItemAnimation.cpp +    src/T2DLL/T2DlgItemAPTable.cpp +    src/T2DLL/T2DlgItemBelongGage.cpp +    src/T2DLL/T2DlgItemBox.cpp +    src/T2DLL/T2DlgItemButtonBase.cpp +    src/T2DLL/T2DlgItemCANCEL.cpp +    src/T2DLL/T2DlgItemCheck.cpp +    src/T2DLL/T2DlgItemCustomerGage.cpp +    src/T2DLL/T2DlgItemEdit.cpp +    src/T2DLL/T2DlgItemGageBase.cpp +    src/T2DLL/T2DlgItemHScr.cpp +    src/T2DLL/T2DlgItemIButton.cpp +    src/T2DLL/T2DlgItemICheck.cpp +    src/T2DLL/T2DlgItemImage.cpp +    src/T2DLL/T2DlgItemImageTable.cpp +    src/T2DLL/T2DlgItemListBox.cpp +    src/T2DLL/T2DlgItemMovie.cpp +    src/T2DLL/T2DlgItemOK.cpp +    src/T2DLL/T2DlgItemPeopleView.cpp +    src/T2DLL/T2DlgItemPopup.cpp +    src/T2DLL/T2DlgItemPPLEvalGage.cpp +    src/T2DLL/T2DlgItemProfitsGage.cpp +    src/T2DLL/T2DlgItemProgress.cpp +[E]SWP src/T2DLL/T2DlgItemScr.cpp +    src/T2DLL/T2DlgItemSTimeTbl.cpp +    src/T2DLL/T2DlgItemStressGage.cpp +    src/T2DLL/T2DlgItemTab.cpp +    src/T2DLL/T2DlgItemTable.cpp +    src/T2DLL/T2DlgItemTButton.cpp +    src/T2DLL/T2DlgItemText.cpp +    src/T2DLL/T2DlgItemVScr.cpp +OK  src/T2DLL/T2DrawableObject.cpp +    src/T2DLL/T2ElevatorModule.cpp +    src/T2DLL/T2ElvModuleList.cpp +SWP src/T2DLL/T2Equip.cpp +SWP,90% src/T2DLL/T2EquipDef.cpp [depends on some subclass for DrawPeople, and T2WordDefArray] +    src/T2DLL/T2EquipInfoDialog.cpp +OK  src/T2DLL/T2EquipPlugin.cpp +    src/T2DLL/T2EquipPtrList.cpp +    src/T2DLL/T2EventItem.cpp +    src/T2DLL/T2FInfoAreaIterator.cpp +    src/T2DLL/T2FireBurning.cpp +    src/T2DLL/T2FireWork.cpp +OK  src/T2DLL/T2FloorCEArray.cpp +    src/T2DLL/T2FloorInfo.cpp +    src/T2DLL/T2FloorNumberTable.cpp +    src/T2DLL/T2FloorPtrList.cpp +    src/T2DLL/T2GlobalData.cpp +    src/T2DLL/T2GuestroomTable.cpp +    src/T2DLL/T2HallEventPlugin.cpp +    src/T2DLL/T2HallEventTable.cpp +OK  src/T2DLL/T2HaveOutViewObject.cpp +[E]SWP src/T2DLL/T2ImageObj.cpp +SWP src/T2DLL/T2InfoDialog.cpp +    src/T2DLL/T2Maru_Reggae.cpp +SWPi src/T2DLL/T2Matter.cpp +[E]OK  src/T2DLL/T2MatterArray.cpp +    src/T2DLL/T2MatterArrayList.cpp +OK  src/T2DLL/T2MatterDef.cpp +    src/T2DLL/T2Message.cpp +    src/T2DLL/T2Mover.cpp +    src/T2DLL/T2MoverArray.cpp +    src/T2DLL/T2MoverArrayList.cpp +OK  src/T2DLL/T2MoverCEArray.cpp +    src/T2DLL/T2MoverDef.cpp +    src/T2DLL/T2MoverModule.cpp +    src/T2DLL/T2MoverModuleList.cpp +    src/T2DLL/T2MoverNumberTable.cpp +    src/T2DLL/T2MoverPlugin.cpp +    src/T2DLL/T2MoverRoutingTable.cpp +    src/T2DLL/T2MovieParamArray.cpp +    src/T2DLL/T2MoviePlugin.cpp +    src/T2DLL/T2MoviePluginList.cpp +    src/T2DLL/T2MovieTable.cpp +    src/T2DLL/T2MsgWindowCallback.cpp +    src/T2DLL/T2Name.cpp +    src/T2DLL/T2NameList.cpp +    src/T2DLL/T2NameTable.cpp +[E]OK  src/T2DLL/T2Object.cpp +[E]    src/T2DLL/T2ObjectArray.cpp +    src/T2DLL/T2ObjectArrayList.cpp +    src/T2DLL/T2OptionPluginList.cpp +    src/T2DLL/T2OutDecoration.cpp +    src/T2DLL/T2OuterObjDef.cpp +    src/T2DLL/T2OuterObjList.cpp +    src/T2DLL/T2OuterObjPlugin.cpp +    src/T2DLL/T2OutObj.cpp +    src/T2DLL/T2OutObjArray.cpp +    src/T2DLL/T2OutObjArrayList.cpp +    src/T2DLL/T2OutObjInfoDialog.cpp +    src/T2DLL/T2OutsideInfo.cpp +[E]SWP src/T2DLL/T2PaletteAnime.cpp +[E]OK  src/T2DLL/T2PaletteAnimeDef.cpp +    src/T2DLL/T2People.cpp +    src/T2DLL/T2PeopleAnimeDef.cpp +    src/T2DLL/T2PeopleArray.cpp +    src/T2DLL/T2PeopleArrayList.cpp +    src/T2DLL/T2PeopleDef.cpp +    src/T2DLL/T2PeopleDemandList.cpp +    src/T2DLL/T2PeopleInfoDialog.cpp +    src/T2DLL/T2PeopleLinkIterator.cpp +    src/T2DLL/T2PeopleLoader.cpp +    src/T2DLL/T2PeoplePtrList.cpp +    src/T2DLL/T2PeopleTimeZoneList.cpp +OK  src/T2DLL/T2PeopleType.cpp +SWP src/T2DLL/T2PeopleTypeArray.cpp +OKi src/T2DLL/T2PlaceParamDef.cpp +    src/T2DLL/T2PluginInfoTable.cpp +[E]SWP src/T2DLL/T2PluginLoader.cpp +[E]SWP src/T2DLL/T2PluginSpecifier.cpp +    src/T2DLL/T2Pool.cpp +[U]90% src/T2DLL/T2PoolDef.cpp (maybe swaps, GetModuleHandle depends on T2WorldPlugin) +    src/T2DLL/T2PrefDialogBox.cpp +OK? src/T2DLL/T2PrefFile.cpp (what's up with the copy/assign funcs?) +    src/T2DLL/T2RegistedTenantDB.cpp +    src/T2DLL/T2RegistedTenantIterator.cpp +    src/T2DLL/T2RemoveFavoriteDialog.cpp +    src/T2DLL/T2Request.cpp +    src/T2DLL/T2RequestArray.cpp +    src/T2DLL/T2RequestArrayList.cpp +    src/T2DLL/T2RequestIDArray.cpp +[I]OKi src/T2DLL/T2ReturnStack.cpp +SWP src/T2DLL/T2RouteCEArray.cpp +    src/T2DLL/T2RouteNavigator.cpp +    src/T2DLL/T2RoutingTable.cpp +    src/T2DLL/T2SantaClaus.cpp +    src/T2DLL/T2SearchDialog.cpp +    src/T2DLL/T2SettingDialog.cpp +    src/T2DLL/T2Settlement.cpp +    src/T2DLL/T2SilhouetteDef.cpp +    src/T2DLL/T2SilhouettePane.cpp +    src/T2DLL/T2SoundPlayer.cpp +[E]SWP src/T2DLL/T2Sprite.cpp +[E]OK  src/T2DLL/T2SpriteObj.cpp +    src/T2DLL/T2StairModule.cpp +    src/T2DLL/T2StairModuleList.cpp +    src/T2DLL/T2StewardDialog.cpp +    src/T2DLL/T2StopInfoArray.cpp +OK  src/T2DLL/T2SubPlugin.cpp +OK  src/T2DLL/T2TemplatePlugin.cpp +    src/T2DLL/T2TemplatePluginDB.cpp +    src/T2DLL/T2TemplatePluginList.cpp +    src/T2DLL/T2TempPluginComparator.cpp +    src/T2DLL/T2Tenant.cpp +    src/T2DLL/T2TenantArray.cpp +    src/T2DLL/T2TenantArrayList.cpp +OK  src/T2DLL/T2TenantCEArray.cpp +    src/T2DLL/T2TenantDef.cpp +    src/T2DLL/T2TenantInfoDialog.cpp +OK  src/T2DLL/T2TenantMemberDef.cpp +    src/T2DLL/T2TenantMemberTableDef.cpp +    src/T2DLL/T2TenantPlugin.cpp +    src/T2DLL/T2Terrorist.cpp +80% src/T2DLL/T2ToolDef.cpp [depends on: mystery field m114, T2WorldDef] +    src/T2DLL/T2ToolDefList.cpp +    src/T2DLL/T2ToolHelpWnd.cpp +OK  src/T2DLL/T2ToolPlugin.cpp +    src/T2DLL/T2ToolWindow.cpp +    src/T2DLL/T2TowerEvent.cpp +    src/T2DLL/T2TowerMessage.cpp +    src/T2DLL/T2TowerVision.cpp +    src/T2DLL/T2TrafficInfo.cpp +    src/T2DLL/T2Transport.cpp +    src/T2DLL/T2TreasureDialog.cpp +    src/T2DLL/T2TreasurePane.cpp +    src/T2DLL/T2UnitInfo.cpp +    src/T2DLL/T2VerticalTable.cpp +    src/T2DLL/T2VisitVIP.cpp +[E]SWP src/T2DLL/T2WeatherFilter.cpp +[E]OK  src/T2DLL/T2WordDef.cpp +[E]SWP src/T2DLL/T2WordDefArray.cpp +    src/T2DLL/T2WorldDef.cpp +    src/T2DLL/T2WorldPlugin.cpp +    src/T2DLL/T2XEvent.cpp +    src/T2DLL/UPoint.cpp +    src/T2DLL/URect.cpp +[E]SWP src/T2DLL/UT2BkgndInfo.cpp +    src/T2DLL/UT2Coordinate.cpp +    src/T2DLL/UT2Utils.cpp +    src/T2DLL/Wave.cpp diff --git a/src/CT2App.h b/src/CT2App.h new file mode 100644 index 0000000..da554ca --- /dev/null +++ b/src/CT2App.h @@ -0,0 +1,13 @@ +#pragma once +#include "common.h" + +class CT2App : public CWinApp { +public: +	// stuff will go here later + +	virtual void app_vfA4(BOOL); // modifies a counter +	virtual void app_vfA8(CWnd *); // sets field E8 +	virtual void app_vfAC(); // clears field E8 +	virtual T2GlobalData *app_vfB0(); // gets global data +	virtual void app_vfB4(); // runs a message loop +}; diff --git a/src/T2DLL/CDefRsrcPlugin.cpp b/src/T2DLL/CDefRsrcPlugin.cpp new file mode 100644 index 0000000..a4f8b42 --- /dev/null +++ b/src/T2DLL/CDefRsrcPlugin.cpp @@ -0,0 +1,14 @@ +#include "CDefRsrcPlugin.h" +#include "T2ImageObj.h" + +CDefRsrcPlugin::CDefRsrcPlugin(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile) +	: CPlugin(type, specifier) +{ +	mStr48 = specifier.mPluginName; +#line 32 +	mImageObj = DEBUG_NEW T2ImageObj; +} + +/*virtual*/ CDefRsrcPlugin::~CDefRsrcPlugin() { +	delete mImageObj; +} diff --git a/src/T2DLL/CDefRsrcPlugin.h b/src/T2DLL/CDefRsrcPlugin.h new file mode 100644 index 0000000..00b6df2 --- /dev/null +++ b/src/T2DLL/CDefRsrcPlugin.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" +#include "CPlugin.h" + +class DLL_EXPORT CDefRsrcPlugin : public CPlugin { +public: +	CDefRsrcPlugin(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile); +	virtual ~CDefRsrcPlugin(); + +	virtual DWORD GetPluginStyle() { return 'RPlg'; } + +protected: +	CString mStr48; +}; diff --git a/src/T2DLL/CFilePlugin.cpp b/src/T2DLL/CFilePlugin.cpp new file mode 100644 index 0000000..aac286d --- /dev/null +++ b/src/T2DLL/CFilePlugin.cpp @@ -0,0 +1,52 @@ +#include "CFilePlugin.h" +#include "CPluginInfo.h" +#include "CResFile.h" + +CFilePlugin::CFilePlugin(DWORD type, T2PluginSpecifier& specifier) +	: CPlugin(type, specifier) +{ +	mAttrib = 0; +	mGameLevel = 0; + +	CResFile file; +	int success = false; +	if (specifier.mIsSubPlugin) { +		success = file.OpenResource(specifier.mPath, 128, 'ATTR'); +		specifier.mIsLoaded = true; +	} else { +		success = file.OpenResource(specifier.mInstance, 128, "ATTR"); +	} + +	if (success) { +		file >> mID; +		file >> mAttrib; +		file >> mDependID; +		file >> mGameLevel; +		file >> mSecretItem; +		file >> mItemType; +		file >> mMustItem; +		file >> mPluginName; +	} +} + +/*virtual*/ CFilePlugin::~CFilePlugin() { +	Unload(); +} + +/*virtual*/ void CFilePlugin::GetName(CString& outStr) { +	outStr = mPluginName; +} + +/*virtual*/ BOOL CFilePlugin::Load() { +	return true; +} + +/*virtual*/ BOOL CFilePlugin::Unload() { +	return true; +} + +CPluginInfo* CFilePlugin::GetPluginInfo() { +	char buf[500]; +	GetModuleFileName(mModuleHandle, buf, sizeof(buf)); +	return new CPluginInfo(mType, mID, mItemType, mMustItem, mPluginName, buf); +} diff --git a/src/T2DLL/CFilePlugin.h b/src/T2DLL/CFilePlugin.h new file mode 100644 index 0000000..6cb909f --- /dev/null +++ b/src/T2DLL/CFilePlugin.h @@ -0,0 +1,35 @@ +#pragma once +#include "common.h" +#include "CPlugin.h" + +class CPluginInfo; + +class DLL_EXPORT CFilePlugin : public CPlugin { +public: +	CFilePlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~CFilePlugin(); +	virtual DWORD GetPluginStyle() { return 'fplg'; } +	virtual void GetName(CString& outStr); +	virtual BOOL Load(); +	virtual BOOL Unload(); +	CPluginInfo* GetPluginInfo(); + +	DWORD GetID() { return mID; } +	unsigned int GetAttrib() { return mAttrib; } +	DWORD GetDependID() { return mDependID; } +	unsigned int GetGameLevel() { return mGameLevel; } +	unsigned int GetSecretItem() { return mSecretItem; } +	int GetItemType() { return mItemType; } +	int GetMustItem() { return mMustItem; } +	void UseSecret() { mSecretItem = 0; } + +protected: +	DWORD mID; +	unsigned int mAttrib; +	DWORD mDependID; +	int mGameLevel; +	int mSecretItem; +	int mItemType; +	int mMustItem; +	CString mPluginName; +}; diff --git a/src/T2DLL/CFilePluginDB.cpp b/src/T2DLL/CFilePluginDB.cpp new file mode 100644 index 0000000..83d8456 --- /dev/null +++ b/src/T2DLL/CFilePluginDB.cpp @@ -0,0 +1,42 @@ +#include "CFilePlugin.h" +#include "CFilePluginDB.h" +#include "CFilePluginList.h" + +CFilePluginDB::CFilePluginDB() +	: LArray(sizeof(CFilePlugin *)) +{ +} + +/*virtual*/ CFilePluginDB::~CFilePluginDB() { +} + +/*virtual*/ void CFilePluginDB::Add(CFilePlugin* plugin) { +	LArrayIterator iter(*this); +	BOOL found = false; +	CFilePluginList *list; + +	while (!found && iter.Next(&list)) { +		if (list->GetPluginType() == plugin->GetType()) { +			list->Add(plugin); +			found = true; +		} +	} + +	if (!found) { +		list = new CFilePluginList(plugin->GetType()); +		list->Add(plugin); +		InsertItemsAt(1, mItemCount + 1, &list); +	} +} + +/*virtual*/ CFilePluginList* CFilePluginDB::GetFilePluginList(DWORD pluginType) { +	LArrayIterator iter(*this); +	CFilePluginList *list; + +	while (iter.Next(&list)) { +		if (list->GetPluginType() == pluginType) +			return list; +	} + +	return NULL; +} diff --git a/src/T2DLL/CFilePluginDB.h b/src/T2DLL/CFilePluginDB.h new file mode 100644 index 0000000..02aba0b --- /dev/null +++ b/src/T2DLL/CFilePluginDB.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class DLL_EXPORT CFilePluginDB : public LArray { +public: +	CFilePluginDB(); +	virtual ~CFilePluginDB(); +	virtual void Add(CFilePlugin* plugin); +	virtual CFilePluginList* GetFilePluginList(DWORD pluginType); +}; diff --git a/src/T2DLL/CFilePluginList.cpp b/src/T2DLL/CFilePluginList.cpp new file mode 100644 index 0000000..d55a841 --- /dev/null +++ b/src/T2DLL/CFilePluginList.cpp @@ -0,0 +1,49 @@ +#include "CFilePlugin.h" +#include "CFilePluginList.h" + +CFilePluginList::CFilePluginList(DWORD pluginType) { +	mPluginType = pluginType; +} + +/*virtual*/ CFilePluginList::~CFilePluginList() { +} + +/*virtual*/ void CFilePluginList::AllClear() { +	RemoveAll(); +} + +/*virtual*/ BOOL CFilePluginList::Add(CFilePlugin* plugin) { +	BOOL found = false; +	POSITION pos = GetHeadPosition(); + +	while (!found && pos) { +		CFilePlugin *check = GetNext(pos); +		if (check->GetID() == plugin->GetID()) +			found = true; +	} + +	if (!found) +		AddTail(plugin); + +	return !found; +} + +/*virtual*/ unsigned int CFilePluginList::GetItemCount() { +	return GetCount(); +} + +/*virtual*/ CFilePlugin* CFilePluginList::GetItemAt(POSITION pos) { +	return GetAt(pos); +} + +CFilePlugin* CFilePluginList::GetItem(DWORD id) { +	POSITION pos = GetHeadPosition(); + +	while (pos) { +		CFilePlugin *check = GetNext(pos); +		if (check->GetID() == id) +			return check; +	} + +	return NULL; +} diff --git a/src/T2DLL/CFilePluginList.h b/src/T2DLL/CFilePluginList.h new file mode 100644 index 0000000..a4bc776 --- /dev/null +++ b/src/T2DLL/CFilePluginList.h @@ -0,0 +1,18 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT CFilePluginList : public CList<CFilePlugin *, CFilePlugin *> { +public: +	CFilePluginList(DWORD pluginType); +	virtual ~CFilePluginList(); +	virtual void AllClear(); +	virtual BOOL Add(CFilePlugin* plugin); +	virtual unsigned int GetItemCount(); +	virtual CFilePlugin* GetItemAt(POSITION pos); +	CFilePlugin* GetItem(DWORD id); + +	DWORD GetPluginType() { return mPluginType; } + +protected: +	DWORD mPluginType; +}; diff --git a/src/T2DLL/CLink.cpp b/src/T2DLL/CLink.cpp new file mode 100644 index 0000000..88f63bc --- /dev/null +++ b/src/T2DLL/CLink.cpp @@ -0,0 +1,90 @@ +#include "CLink.h" + +CLink::CLink() { +	mNext = NULL; +	mPrev = NULL; +} + +CLink::CLink(CLink* prev) { +	mNext = NULL; +	mPrev = prev; +	if (prev) +		prev->SetNext(this); +} + +/*virtual*/ CLink::~CLink() { +} + +void CLink::InsertAt(CLink* before) { +	if (!mNext) { +		mNext = before; +		if (before) +			before->mPrev = this; +	} else { +		CLink *tmp = mNext; +		mNext = before; +		tmp->mPrev = before; +		before->mNext = tmp; +	} +} + +void CLink::Remove() { +	CLink *prev = mPrev; +	CLink *next = mNext; +	mNext = NULL; +	mPrev = NULL; + +	if (prev) +		prev->mNext = next; +	if (next) +		next->mPrev = prev; +} + +void CLink::RemoveLink() { +	Remove(); +} + +unsigned int CLink::Count() const { +	unsigned int n = 1; +	CLink *i = mNext; +	while (i) { +		n++; +		i = i->GetNext(); +	} +	return n; +} + +CLinkIterator::CLinkIterator(CLink* start) +	: mStart(start) +	, mCurrent(NULL) +{ +} + +/*virtual*/ CLinkIterator::~CLinkIterator() { +} + +BOOL CLinkIterator::Current(CLink** p) { +	if (mCurrent) { +		*p = mCurrent; +		return true; +	} +	return false; +} + +BOOL CLinkIterator::Prev(CLink** p) { +	if (mCurrent) { +		mCurrent = mCurrent->mPrev; +		return Current(p); +	} +	return false; +} + +BOOL CLinkIterator::Next(CLink** p) { +	if (mCurrent) { +		mCurrent = mCurrent->mNext; +		return Current(p); +	} else { +		mCurrent = mStart; +		return Current(p); +	} +} diff --git a/src/T2DLL/CLink.h b/src/T2DLL/CLink.h new file mode 100644 index 0000000..3e8988b --- /dev/null +++ b/src/T2DLL/CLink.h @@ -0,0 +1,37 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT CLink { +public: +	CLink(); +	CLink(CLink* prev); +	virtual ~CLink(); +	void InsertAt(CLink* before); +	void Remove(); +	void RemoveLink(); +	unsigned int Count() const; + +	CLink* GetNext() { return mNext; } +	CLink* GetPrev() { return mPrev; } +	void SetNext(CLink* l) { mNext = l; } +	void SetPrev(CLink* l) { mPrev = l; } + +private: +	CLink *mNext; +	CLink *mPrev; + +	friend class CLinkIterator; +}; + +class DLL_EXPORT CLinkIterator { +public: +	CLinkIterator(CLink* start); +	virtual ~CLinkIterator(); +	BOOL Current(CLink** p); +	BOOL Prev(CLink** p); +	BOOL Next(CLink** p); + +private: +	CLink *mStart; +	CLink *mCurrent; +}; diff --git a/src/T2DLL/CObjectList.cpp b/src/T2DLL/CObjectList.cpp new file mode 100644 index 0000000..8aa761d --- /dev/null +++ b/src/T2DLL/CObjectList.cpp @@ -0,0 +1,11 @@ +#include "CObjectList.h" + +CObjectList::CObjectList() { +} + +/*virtual*/ CObjectList::~CObjectList() { +} + +/*virtual*/ void CObjectList::AllClear() { +	RemoveItemsAt(mItemCount, 1); +} diff --git a/src/T2DLL/CObjectList.h b/src/T2DLL/CObjectList.h new file mode 100644 index 0000000..ed66dd1 --- /dev/null +++ b/src/T2DLL/CObjectList.h @@ -0,0 +1,10 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class DLL_EXPORT CObjectList : public LArray { +public: +	CObjectList(); +	virtual ~CObjectList(); +	virtual void AllClear(); +}; diff --git a/src/T2DLL/CObjectQueue.cpp b/src/T2DLL/CObjectQueue.cpp new file mode 100644 index 0000000..20c94c2 --- /dev/null +++ b/src/T2DLL/CObjectQueue.cpp @@ -0,0 +1,23 @@ +#include "CObjectQueue.h" + +CObjectQueue::CObjectQueue() { +} + +/*virtual*/ CObjectQueue::~CObjectQueue() { +} + +/*virtual*/ void CObjectQueue::AllClear() { +	RemoveAll(); +} + +POSITION CObjectQueue::AddItem(void* item) { +	return AddTail(item); +} + +/*virtual*/ unsigned int CObjectQueue::GetItemCount() { +	return GetCount(); +} + +void CObjectQueue::RemoveItem(POSITION pos) { +	RemoveAt(pos); +} diff --git a/src/T2DLL/CObjectQueue.h b/src/T2DLL/CObjectQueue.h new file mode 100644 index 0000000..9a87db2 --- /dev/null +++ b/src/T2DLL/CObjectQueue.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class CObjectQueue : public CList<void*, void*> { +public: +	CObjectQueue(); +	virtual ~CObjectQueue(); +	virtual void AllClear(); +	POSITION AddItem(void*); +	virtual unsigned int GetItemCount(); +	void RemoveItem(POSITION); +}; diff --git a/src/T2DLL/CPEFile.cpp b/src/T2DLL/CPEFile.cpp new file mode 100644 index 0000000..7bb49de --- /dev/null +++ b/src/T2DLL/CPEFile.cpp @@ -0,0 +1,248 @@ +#include "CPEFile.h" + +CPEFile::CPEFile(const CPEFile& other) +	: mFile(other.mFile) +	, mFileHeader(other.mFileHeader) +	, mSectionHeaders(other.mSectionHeaders) +	, mRsrcPtr(other.mRsrcPtr) +	, mRsrcIndex(other.mRsrcIndex) +	, mStartPosition(other.mStartPosition) +	, mLength(other.mLength) +{ +} + +CPEFile& CPEFile::operator=(const CPEFile& other) { +	mFile = other.mFile; +	mFileHeader = other.mFileHeader; +	mSectionHeaders = other.mSectionHeaders; +	mRsrcPtr = other.mRsrcPtr; +	mRsrcIndex = other.mRsrcIndex; +	mStartPosition = other.mStartPosition; +	mLength = other.mLength; +	return *this; +} + +CPEFile::CPEFile() { +	mFile = NULL; +} + +CPEFile::~CPEFile() { +	Close(); +} + +/*virtual*/ void CPEFile::Close() { +	if (mFile) { +		mFile->Close(); +		delete mFile; +	} +	mFile = NULL; + +	if (mSectionHeaders) +		free(mSectionHeaders); +	mSectionHeaders = NULL; +} + +/*virtual*/ BOOL CPEFile::Open(const char*filename, unsigned int flags, CFileException*pError) { +	BOOL result = false; + +#line 36 +	mFile = DEBUG_NEW CFile; +	if (mFile->Open(filename, flags, pError)) { +		result = Init(); +		if (!result) +			Close(); +	} + +	return result; +} + +BOOL CPEFile::Init() { +	IMAGE_DOS_HEADER header; + +	mSectionHeaders = NULL; + +	memset(&header, 0, sizeof(header)); +	mFile->Read(&header, sizeof(header)); +	if (header.e_magic != IMAGE_DOS_SIGNATURE) +		return false; + +	mFile->Seek(header.e_lfanew, CFile::begin); + +	DWORD magic = 0; +	mFile->Read(&magic, sizeof(magic)); +	if (magic != IMAGE_NT_SIGNATURE) +		return false; + +	memset(&mFileHeader, 0, sizeof(mFileHeader)); +	mFile->Read(&mFileHeader, sizeof(mFileHeader)); +	mFile->Seek(IMAGE_SIZEOF_NT_OPTIONAL_HEADER, CFile::current); + +	mSectionHeaders = (IMAGE_SECTION_HEADER *) malloc(sizeof(IMAGE_SECTION_HEADER) * mFileHeader.NumberOfSections); +	mFile->Read(mSectionHeaders, sizeof(IMAGE_SECTION_HEADER) * mFileHeader.NumberOfSections); + +	int i; +	for (i = 0; i < mFileHeader.NumberOfSections; i++) { +		if (strcmp((const char *) mSectionHeaders[i].Name, ".rsrc") == 0) +			break; +	} + +	if (i == mFileHeader.NumberOfSections) +		return false; + +	mRsrcPtr = mSectionHeaders[i].PointerToRawData; +	mRsrcIndex = i; +	return true; +} + +BOOL CPEFile::EnumResource(CString& s, RESTRACKERWORK& work) { +	IMAGE_RESOURCE_DIRECTORY_ENTRY entry; + +	if (!EnumResourceDirectory(&entry, work)) +		return false; + +	GetResourceName(s, entry); +	return true; +} + +BOOL CPEFile::EnumResourceDirectory(IMAGE_RESOURCE_DIRECTORY_ENTRY* entry, RESTRACKERWORK& work) { +	if (!work.didRead) { +		mFile->Seek(mRsrcPtr, CFile::begin); +		mFile->Read(&work.directory, sizeof(work.directory)); +		work.position = mFile->GetPosition(); +		work.didRead = true; +		work.nextIndex = 0; +	} + +	int entryCount = (work.directory.NumberOfNamedEntries + work.directory.NumberOfIdEntries); +	if (work.nextIndex >= entryCount) +		return false; + +	mFile->Seek(work.position + work.nextIndex * sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY), CFile::begin); +	mFile->Read(entry, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY)); +	memcpy(&work.entry, entry, sizeof(IMAGE_RESOURCE_DIRECTORY_ENTRY)); +	work.nextIndex++; +	return true; +} + +void CPEFile::GetResourceName(CString& s, IMAGE_RESOURCE_DIRECTORY_ENTRY& entry) { +	if (entry.Name & 0x80000000) { +		unsigned short len; +		mFile->Seek(mRsrcPtr + entry.NameOffset, CFile::begin); +		mFile->Read(&len, sizeof(len)); + +		char *widebuf = (char *) malloc(len * 2); +		mFile->Read(widebuf, len * 2); + +		int size = len * 2 + 1; +		char *buf = (char *) malloc(size); +		memset(buf, 0, size); + +		int i; +		for (i = 0; i < len; i++) { +			buf[i] = widebuf[i * 2]; +		} +		buf[i] = 0; + +		s = buf; +		free(widebuf); +		free(buf); +	} else { +		s.Format("#%u", entry.Name); +	} + +	if (entry.OffsetToData & 0x80000000) +		s += "\\"; +} + +void CPEFile::EnterDirectory(RESTRACKERWORK& child, RESTRACKERWORK& parent) { +	mFile->Seek(mRsrcPtr + parent.entry.OffsetToDirectory, CFile::begin); +	mFile->Read(&child.directory, sizeof(child.directory)); +	child.position = mFile->GetPosition(); +	child.didRead = true; +	child.nextIndex = 0; +} + +/*virtual*/ BOOL CPEFile::Seek(const char* name) { +#line 141 +	_ASSERT(strncmp(name, "\\.rsrc", 6) == 0); + +	char *nameCopy = (char *) malloc(strlen(name) + 1); +	strcpy(nameCopy, name); + +	CString str; +	str = (char *) NULL; +	str = strtok(nameCopy, "\\"); + +	RESTRACKERWORK work; +	memset(&work, 0, sizeof(work)); + +	BOOL flag = false; + +	CString str2(""); + +	while ((str = strtok(NULL, "\\")) != "") { +		if (flag) { +			RESTRACKERWORK child; +			EnterDirectory(child, work); +			work = child; +		} +		flag = false; + +		while (EnumResource(str2, work) == 1) { +			if (_stricmp(str2, str) == 0 || _stricmp(str2, str + "\\") == 0) { +				flag = true; +				break; +			} +		} + +		if (!flag) +			return false; +	} + +	free(nameCopy); + +	if (str2.Right(1) == "\\") +		return false; + +	IMAGE_RESOURCE_DATA_ENTRY dataEntry; + +	mFile->Seek(mRsrcPtr + work.entry.OffsetToData, CFile::begin); +	mFile->Read(&dataEntry, sizeof(dataEntry)); + +	mStartPosition = dataEntry.OffsetToData - (mSectionHeaders[mRsrcIndex].VirtualAddress - mSectionHeaders[mRsrcIndex].PointerToRawData); +	mLength = dataEntry.Size; + +	mFile->Seek(mStartPosition, CFile::begin); + +	return true; +} + +/*virtual*/ unsigned long CPEFile::GetLength() { +	return mLength; +} + +/*virtual*/ unsigned long CPEFile::GetPosition() { +	return mFile->GetPosition() - mStartPosition; +} + +/*virtual*/ long CPEFile::Seek(long offset, unsigned int from) { +	if (from == CFile::begin) +		return mFile->Seek(offset + mStartPosition, from) - mStartPosition; +	else +		return mFile->Seek(offset, from) - mStartPosition; +} + +/*virtual*/ unsigned int CPEFile::Read(void* buf, unsigned int len) { +	int remaining = mLength - GetPosition(); +	if (remaining < 0 || len > remaining) +		len = remaining; +	return mFile->Read(buf, len); +} + +/*virtual*/ void CPEFile::Write(void* buf, unsigned int len) { +	int remaining = mLength - GetPosition(); +	if (remaining < 0 || len > remaining) +		MessageBox(NULL, "CPEFile::Write overrun", "ERROR", MB_OK); +	else +		mFile->Write(buf, len); +} diff --git a/src/T2DLL/CPEFile.h b/src/T2DLL/CPEFile.h new file mode 100644 index 0000000..e27a1fa --- /dev/null +++ b/src/T2DLL/CPEFile.h @@ -0,0 +1,44 @@ +#pragma once +#include "common.h" + +struct RESTRACKERWORK { +	int didRead; +	IMAGE_RESOURCE_DIRECTORY directory; +	unsigned long position; +	int nextIndex; +	IMAGE_RESOURCE_DIRECTORY_ENTRY entry; +}; + +class DLL_EXPORT CPEFile { +public: +	CPEFile(const CPEFile&); +	CPEFile& operator=(const CPEFile&); +	CPEFile(); +	~CPEFile(); + +	virtual BOOL Open(const char*, unsigned int, CFileException* exc = NULL); +	virtual void Close(); +	virtual long Seek(long offset, unsigned int from); +	virtual BOOL Seek(const char* name); +	virtual unsigned long GetLength(); +	virtual unsigned long GetPosition(); +	virtual unsigned int Read(void* buf, unsigned int len); +	virtual void Write(void* buf, unsigned int len); + +	BOOL EnumResource(CString& s, RESTRACKERWORK& work); +	void EnterDirectory(RESTRACKERWORK& child, RESTRACKERWORK& parent); + +protected: +	BOOL Init(); +	BOOL EnumResourceDirectory(IMAGE_RESOURCE_DIRECTORY_ENTRY* entry, RESTRACKERWORK& work); +	void GetResourceName(CString& s, IMAGE_RESOURCE_DIRECTORY_ENTRY& entry); + +private: +	CFile *mFile; +	IMAGE_FILE_HEADER mFileHeader; +	IMAGE_SECTION_HEADER *mSectionHeaders; +	DWORD mRsrcPtr; +	int mRsrcIndex; +	unsigned long mStartPosition; +	unsigned long mLength; +}; diff --git a/src/T2DLL/CPieChartView.cpp b/src/T2DLL/CPieChartView.cpp new file mode 100644 index 0000000..cc00bf4 --- /dev/null +++ b/src/T2DLL/CPieChartView.cpp @@ -0,0 +1,16 @@ +#include "CPieChartView.h" + +/*static*/ CPieChartView* CPieChartView::CreateCPieChartViewStream(T2Archive*) { +} + +CPieChartView::CPieChartView(T2Archive*) { +} + +/*virtual*/ CPieChartView::~CPieChartView() { +} + +void CPieChartView::DrawSelf() { +} + +void CPieChartView::CutPie(const CPieChartView::Pie*) { +} diff --git a/src/T2DLL/CPieChartView.h b/src/T2DLL/CPieChartView.h new file mode 100644 index 0000000..8980203 --- /dev/null +++ b/src/T2DLL/CPieChartView.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" + +class CPieChartView { +public: +	static CPieChartView* CreateCPieChartViewStream(T2Archive*); +	CPieChartView(T2Archive*); +	virtual ~CPieChartView(); +	void DrawSelf(); +	void CutPie(const CPieChartView::Pie*); +}; diff --git a/src/T2DLL/CPiledMultiBarChartView.cpp b/src/T2DLL/CPiledMultiBarChartView.cpp new file mode 100644 index 0000000..16b602e --- /dev/null +++ b/src/T2DLL/CPiledMultiBarChartView.cpp @@ -0,0 +1,25 @@ +#include "CPiledMultiBarChartView.h" + +/*static*/ CPiledMultiBarChartView* CPiledMultiBarChartView::CreateCPiledMultiBarChartViewStream(T2Archive*) { +} + +CPiledMultiBarChartView::CPiledMultiBarChartView(T2Archive*) { +} + +/*virtual*/ CPiledMultiBarChartView::~CPiledMultiBarChartView() { +} + +void CPiledMultiBarChartView::SetGraphData(const CPiledMultiBarChartView::GraphData*) { +} + +void CPiledMultiBarChartView::SetPixelPerValue(int, int) { +} + +void CPiledMultiBarChartView::SetColorOfPiles(int, const unsigned long*, int) { +} + +void CPiledMultiBarChartView::Refresh() { +} + +void CPiledMultiBarChartView::DrawSelf() { +} diff --git a/src/T2DLL/CPiledMultiBarChartView.h b/src/T2DLL/CPiledMultiBarChartView.h new file mode 100644 index 0000000..4a54d23 --- /dev/null +++ b/src/T2DLL/CPiledMultiBarChartView.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class CPiledMultiBarChartView { +public: +	static CPiledMultiBarChartView* CreateCPiledMultiBarChartViewStream(T2Archive*); +	CPiledMultiBarChartView(T2Archive*); +	virtual ~CPiledMultiBarChartView(); +	void SetGraphData(const CPiledMultiBarChartView::GraphData*); +	void SetPixelPerValue(int, int); +	void SetColorOfPiles(int, const unsigned long*, int); +	void Refresh(); +	void DrawSelf(); +}; diff --git a/src/T2DLL/CPlugin.cpp b/src/T2DLL/CPlugin.cpp new file mode 100644 index 0000000..15ec926 --- /dev/null +++ b/src/T2DLL/CPlugin.cpp @@ -0,0 +1,21 @@ +#include "CPlugin.h" + +CPlugin::CPlugin(DWORD type, T2PluginSpecifier& specifier) { +	mSpecifier = specifier; +	mModuleHandle = specifier.mInstance; +	mType = type; +	mIsLoaded = false; +} + +/*virtual*/ CPlugin::~CPlugin() { +} + +/*virtual*/ void CPlugin::GetName(CString&) { +} + +/*virtual*/ void CPlugin::GetInfoString(CString&) { +} + +/*virtual*/ HINSTANCE CPlugin::GetModuleHandle() { +	return mModuleHandle; +} diff --git a/src/T2DLL/CPlugin.h b/src/T2DLL/CPlugin.h new file mode 100644 index 0000000..866157c --- /dev/null +++ b/src/T2DLL/CPlugin.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" +#include "T2PluginSpecifier.h" + +class DLL_EXPORT CPlugin { +public: +	CPlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~CPlugin(); +	virtual DWORD GetPluginStyle() { return 'plug'; } +	virtual void GetName(CString&); +	virtual void GetInfoString(CString&); +	virtual HINSTANCE GetModuleHandle(); + +	DWORD GetType() { return mType; } +	BOOL IsLoaded() { return mIsLoaded; } + +protected: +	BOOL mIsLoaded; +	DWORD mType; +	T2PluginSpecifier mSpecifier; + +public: +	// this gets accessed by T2PaletteAnime without an inline +	HINSTANCE mModuleHandle; +	T2ImageObj *mImageObj; +}; diff --git a/src/T2DLL/CPluginInfo.cpp b/src/T2DLL/CPluginInfo.cpp new file mode 100644 index 0000000..e836e42 --- /dev/null +++ b/src/T2DLL/CPluginInfo.cpp @@ -0,0 +1,99 @@ +#include "CPluginInfo.h" +#include "T2Archive.h" + +/*static*/ CPluginInfo* CPluginInfo::ReadPluginInfo(T2Archive& archive) { +	CPluginInfo *info = new CPluginInfo; +	info->Read(archive); +	return info; +} + +CPluginInfo::CPluginInfo() { +	mType = 0; +	mID = 0; +	mItemType = 0; +	mMustItem = 0; +	mName = ""; +	mFileName = ""; +	mUsed = false; +} + +CPluginInfo::CPluginInfo(DWORD type, DWORD id, int itemType, int mustItem, const char* name, const char* fileName) { +	mType = type; +	mID = id; +	mItemType = itemType; +	mMustItem = mustItem; +	mName = name; +	mFileName = fileName; +	mUsed = false; +} + +/*virtual*/ CPluginInfo::~CPluginInfo() { +} + +void CPluginInfo::GetName(CString& outStr) { +	outStr = mName; +} + +void CPluginInfo::GetFileName(CString& outStr) { +	outStr = mFileName; +} + +void CPluginInfo::Read(T2Archive& archive) { +	short s; +	unsigned char i, c; + +	archive >> mType; +	archive >> mID; + +	archive >> s; +	mItemType = s; +	archive >> s; +	mMustItem = s; + +	archive >> c; +	for (i = 0; i < c; i++) { +		char ch; +		archive >> ch; +		mName += ch; +	} + +	archive >> c; +	for (i = 0; i < c; i++) { +		char ch; +		archive >> ch; +		mFileName += ch; +	} + +	char buf[1024]; +	sprintf(buf, "PluginInfo %s, %s\n", mName, mFileName); +	TRACE(buf); + +	archive >> c; +	mUsed = c != 0; +} + +void CPluginInfo::Write(T2Archive& archive) { +	short s; +	unsigned char i, c; + +	archive << mType; +	archive << mID; + +	s = mItemType; +	archive << s; +	s = mMustItem; +	archive << s; + +	c = mName.GetLength(); +	archive << c; +	for (i = 0; i < c; i++) +		archive << mName.GetAt(i); + +	c = mFileName.GetLength(); +	archive << c; +	for (i = 0; i < c; i++) +		archive << mFileName.GetAt(i); + +	c = mUsed != false; +	archive << c; +} diff --git a/src/T2DLL/CPluginInfo.h b/src/T2DLL/CPluginInfo.h new file mode 100644 index 0000000..c47cdd5 --- /dev/null +++ b/src/T2DLL/CPluginInfo.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT CPluginInfo { +public: +	static CPluginInfo* ReadPluginInfo(T2Archive& archive); +protected: +	CPluginInfo(); +public: +	CPluginInfo(DWORD type, DWORD id, int itemType, int mustItem, const char* name, const char* fileName); +	virtual ~CPluginInfo(); +	void GetName(CString& outStr); +	void GetFileName(CString& outStr); +	void Read(T2Archive& archive); +	void Write(T2Archive& archive); + +	DWORD GetType() { return mType; } +	DWORD GetID() { return mID; } +	int GetItemType() { return mItemType; } +	BOOL IsUsed() { return mUsed; } +	void SetUsed(BOOL v) { mUsed = v; } + +protected: +	DWORD mType; +	DWORD mID; +	int mItemType; +	int mMustItem; +	CString mName; +	CString mFileName; +	BOOL mUsed; +}; diff --git a/src/T2DLL/CPluginInfoArray.cpp b/src/T2DLL/CPluginInfoArray.cpp new file mode 100644 index 0000000..ea6f34b --- /dev/null +++ b/src/T2DLL/CPluginInfoArray.cpp @@ -0,0 +1,34 @@ +#include "CPluginInfo.h" +#include "CPluginInfoArray.h" +#include "CPluginInfoComparator.h" + +CPluginInfoArray::CPluginInfoArray(BOOL ownsPluginInfo) +	: LArray(sizeof(CPluginInfo *), CPluginInfoComparator::GetComparator(), true) +{ +	mOwnsComparator = false; +	mOwnsPluginInfo = ownsPluginInfo; +} + +/*virtual*/ CPluginInfoArray::~CPluginInfoArray() { +	if (mOwnsPluginInfo) { +		LArrayIterator iter(*this); +		CPluginInfo *pluginInfo; + +		while (iter.Next(&pluginInfo)) +			delete pluginInfo; +	} +} + +int CPluginInfoArray::GetUsedCount() { +	int count = 0; + +	LArrayIterator iter(*this); +	CPluginInfo *pluginInfo; + +	while (iter.Next(&pluginInfo)) { +		if (pluginInfo->IsUsed()) +			count++; +	} + +	return count; +} diff --git a/src/T2DLL/CPluginInfoArray.h b/src/T2DLL/CPluginInfoArray.h new file mode 100644 index 0000000..e9fb2bb --- /dev/null +++ b/src/T2DLL/CPluginInfoArray.h @@ -0,0 +1,13 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class DLL_EXPORT CPluginInfoArray : public LArray { +public: +	CPluginInfoArray(BOOL ownsPluginInfo = true); +	virtual ~CPluginInfoArray(); +	int GetUsedCount(); + +protected: +	BOOL mOwnsPluginInfo; +}; diff --git a/src/T2DLL/CPluginInfoComparator.cpp b/src/T2DLL/CPluginInfoComparator.cpp new file mode 100644 index 0000000..1886613 --- /dev/null +++ b/src/T2DLL/CPluginInfoComparator.cpp @@ -0,0 +1,34 @@ +#include "CPluginInfo.h" +#include "CPluginInfoComparator.h" + +/*virtual*/ int CPluginInfoComparator::Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	CPluginInfo *infoOne = *((CPluginInfo **) inItemOne); +	CPluginInfo *infoTwo = *((CPluginInfo **) inItemTwo); + +	if (!infoTwo) +		return -1; +	else if (!infoOne) +		return 1; +	else +		return infoOne->GetID() - infoTwo->GetID(); +} + +/*virtual*/ BOOL CPluginInfoComparator::IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	CPluginInfo *infoOne = *((CPluginInfo **) inItemOne); +	CPluginInfo *infoTwo = *((CPluginInfo **) inItemTwo); +	return infoOne->GetID() == infoTwo->GetID(); +} + +/*virtual*/ int CPluginInfoComparator::CompareToKey(const void* inItem, unsigned int inSize, const void* inKey) const { +	CPluginInfo *item = *((CPluginInfo **) inItem); +	DWORD key = *((const DWORD *) inKey); +	return item->GetID() - key; +} + +/*static*/ CPluginInfoComparator* CPluginInfoComparator::sCPluginInfoComparator; + +/*static*/ CPluginInfoComparator* CPluginInfoComparator::GetComparator() { +	if (!sCPluginInfoComparator) +		sCPluginInfoComparator = new CPluginInfoComparator; +	return sCPluginInfoComparator; +} diff --git a/src/T2DLL/CPluginInfoComparator.h b/src/T2DLL/CPluginInfoComparator.h new file mode 100644 index 0000000..e2408de --- /dev/null +++ b/src/T2DLL/CPluginInfoComparator.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" +#include "LComparator.h" + +class DLL_EXPORT CPluginInfoComparator : public LComparator { +public: +	virtual ~CPluginInfoComparator() { } +	virtual int Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	virtual BOOL IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	virtual int CompareToKey(const void* inItem, unsigned int inSize, const void* inKey) const; +	static CPluginInfoComparator* GetComparator(); +protected: +	static CPluginInfoComparator* sCPluginInfoComparator; +}; diff --git a/src/T2DLL/CProgramPlugin.cpp b/src/T2DLL/CProgramPlugin.cpp new file mode 100644 index 0000000..e3c28aa --- /dev/null +++ b/src/T2DLL/CProgramPlugin.cpp @@ -0,0 +1,30 @@ +#include "CProgramPlugin.h" + +CProgramPlugin::CProgramPlugin(DWORD type, T2PluginSpecifier& specifier) +	: CFilePlugin(type, specifier) +{ +	mTemplatePlugin = NULL; +} + +/*virtual*/ CProgramPlugin::~CProgramPlugin() { +} + +/*virtual*/ void CProgramPlugin::GetInfoString(CString& outStr) { +	outStr.Format("%d", mType); +	outStr += " "; + +	CString name; +	GetName(name); +	outStr += name; +} + +/*virtual*/ BOOL CProgramPlugin::LoadAllTemplatePlugin(HINSTANCE, T2WorldDef*, T2TemplatePluginDB*) { +	return true; +} + +/*virtual*/ void CProgramPlugin::DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*) { +} + +/*virtual*/ unsigned int CProgramPlugin::IdleProc(T2HaveOutViewObject*, T2TowerDoc*) { +	return 0xFFFFFFFF; +} diff --git a/src/T2DLL/CProgramPlugin.h b/src/T2DLL/CProgramPlugin.h new file mode 100644 index 0000000..902cee1 --- /dev/null +++ b/src/T2DLL/CProgramPlugin.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" +#include "CFilePlugin.h" + +class DLL_EXPORT CProgramPlugin : public CFilePlugin { +public: +	CProgramPlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~CProgramPlugin(); +	virtual DWORD GetPluginStyle() { return 'PPlg'; } +	virtual void GetInfoString(CString& outStr); +	virtual BOOL LoadAllTemplatePlugin(HINSTANCE, T2WorldDef*, T2TemplatePluginDB*); +	virtual void DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*); +	virtual unsigned int IdleProc(T2HaveOutViewObject*, T2TowerDoc*); + +	T2TemplatePlugin* GetTemplatePlugin() { return mTemplatePlugin; } +	BOOL HasDrawProc() { return false; } + +protected: +	T2TemplatePlugin *mTemplatePlugin; +}; diff --git a/src/T2DLL/CResFile.cpp b/src/T2DLL/CResFile.cpp new file mode 100644 index 0000000..3c31ec7 --- /dev/null +++ b/src/T2DLL/CResFile.cpp @@ -0,0 +1,459 @@ +#include "CPEFile.h" +#include "CResFile.h" +#include "GlobalFunc.h" + +CResFile::CResFile() { +	mBuffer = NULL; +	mPos = NULL; +	mIsBinaryMode = false; +	mIsSubPlugin = false; +} + +/*virtual*/ CResFile::~CResFile() { +	Reset(); +} + +BOOL CResFile::OpenResource(HINSTANCE inst, int name, int type) { +	return OpenResource(inst, MAKEINTATOM(name), type); +} + +BOOL CResFile::OpenResource(HINSTANCE inst, const char* name, int type) { +	char buf[5], a; +	*((int *) &buf[0]) = type; + +	a = buf[0]; +	buf[0] = buf[3]; +	buf[3] = a; + +	a = buf[1]; +	buf[1] = buf[2]; +	buf[2] = a; + +	buf[4] = 0; + +	return OpenResource(inst, name, buf); +} + +BOOL CResFile::OpenResource(HINSTANCE inst, int name, const char* type) { +	return OpenResource(inst, MAKEINTATOM(name), type); +} + +BOOL CResFile::OpenResource(HINSTANCE inst, const char* name, const char* type) { +	HRSRC h = FindResource(inst, name, type); +	if (!h) { +		CString strN; +		if (((DWORD) name) < 0x10000) +			strN.Format("(%d)", ((DWORD) name) & 0xFFFF); +		else +			strN = name; + +		CString strT; +		if (((DWORD) type) < 0x10000) +			strT.Format("(%d)", ((DWORD) type) & 0xFFFF); +		else +			strT = type; + +		CString str = "CResFile::OpenResource ERROR : " + strN + "," + strT + " @" + GetModuleName(inst) + "\n"; +		OutputDebugString(str); + +		return false; +	} + +	return OpenResource(inst, h); +} + +BOOL CResFile::OpenResource(HINSTANCE inst, HRSRC rsrc) { +	if (mBuffer) +		Reset(); + +	mInstance = inst; +	mRsrc = rsrc; + +	HANDLE handle = LoadResource(inst, rsrc); +	if (!handle) +		return false; + +	void *p = LockResource(handle); +	mRemaining = SizeofResource(inst, rsrc); +	mBuffer = (char *) malloc(mRemaining + 1); +	memcpy(mBuffer, p, mRemaining); +	UnlockResource(handle); +	FreeResource(handle); + +	SetupResource(); + +	return true; +} + +BOOL CResFile::OpenResource(const char* path, int name, int type) { +	CFile *theFile = new CFile; +	if (!theFile->Open(path, CFile::modeRead)) { +		delete theFile; +		return false; +	} + +	char magic[2]; +	theFile->Read(magic, 2); +	theFile->Close(); +	delete theFile; + +	if (memcmp(magic, "SP", 2) == 0) { +		SUBPLUGINFSENTRY entry; +		CFile *f = OpenSubPluginFS(magic, name, type, &entry); +		if (!f) +			return false; + +		mRemaining = entry.spfse_mC; +		mBuffer = (char *) malloc(mRemaining + 1); +		f->Read(mBuffer, mRemaining); +		f->Close(); +		delete f; + +		mIsSubPlugin = true; +	} else if (memcmp(magic, "PE", 2) == 0) { +		CPEFile pe; +		if (!pe.Open(path, CFile::modeRead)) +			return false; + +		char buf[8]; +		buf[0] = ((char *) &type)[3]; +		buf[1] = ((char *) &type)[2]; +		buf[2] = ((char *) &type)[1]; +		buf[3] = ((char *) &type)[0]; +		buf[4] = 0; + +		CString str; +		unsigned short langID = GetUserDefaultLangID(); +		str.Format("\\.rsrc\\%s\\#%d\\#%d", buf, name, langID); +		if (!pe.Seek(str)) +			return false; + +		mRemaining = pe.GetLength(); +		mBuffer = (char *) malloc(mRemaining + 1); +		pe.Read(mBuffer, mRemaining); +		pe.Close(); + +		mIsSubPlugin = false; +	} + +	SetupResource(); +	return true; +} + +void CResFile::SetupResource() { +	mBuffer[mRemaining] = 0; +	mPos = mBuffer; + +	if (*mPos == 1) { +		mPos++; +		mRemaining--; +		mIsBinaryMode = true; +	} else { +		mIsBinaryMode = false; +	} +} + +void CResFile::Reset() { +	if (mBuffer) +		free(mBuffer); + +	mBuffer = NULL; +	mPos = NULL; +} + +BOOL CResFile::Token(char* outStr) { +	while (*mPos == ' ' || *mPos == '\t' || *mPos == '\n' || *mPos == '\r' || *mPos == ',' || *mPos == '(') { +		if (*mPos == '(') { +			while (*mPos != ')') +				mPos++; +		} +		mPos++; +	} + +	if (*mPos == '\0') { +#line 180 +		_ASSERT(false); +		return false; +	} + +	char *p = outStr; +	int len = 0; + +	while (*mPos != ' ' && *mPos != '\t' && *mPos != '\n' && *mPos != '\r' && *mPos != ',' && *mPos != '(' && *mPos != '\0') { +		*p = *mPos; +		p++; +		mPos++; +		len++; +#line 192 +		_ASSERT(len != 256); +	} + +	*p = 0; +	return true; +} + +BOOL CResFile::operator>>(unsigned char& out) { +#line 200 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 204 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((unsigned char *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		if (!Token(buf)) +			return false; + +		out = atoi(buf); +	} + +	return true; +} + +BOOL CResFile::operator>>(int& out) { +#line 222 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 226 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((int *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		if (!Token(buf)) +			return false; + +		out = atoi(buf); +	} + +	return true; +} + +BOOL CResFile::operator>>(short& out) { +#line 244 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 248 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((short *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		if (!Token(buf)) +			return false; + +		out = atoi(buf); +	} + +	return true; +} + +BOOL CResFile::operator>>(long& out) { +#line 266 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 270 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((long *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		if (!Token(buf)) +			return false; + +		out = atol(buf); +	} + +	return true; +} + +BOOL CResFile::operator>>(unsigned int& out) { +#line 288 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 292 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((unsigned int *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		if (!Token(buf)) +			return false; + +		sscanf(buf, "%u", &out); +	} + +	return true; +} + +BOOL CResFile::operator>>(unsigned long& out) { +#line 310 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 314 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((unsigned long *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		if (!Token(buf)) +			return false; + +		sscanf(buf, "%u", &out); +	} + +	return true; +} + +BOOL CResFile::operator>>(unsigned short& out) { +#line 332 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 336 +		_ASSERT(mRemaining >= 4); +		mRemaining -= 4; +		out = *((unsigned short *) mPos); +		mPos += 4; +	} else { +		char buf[256]; +		unsigned int val; +		if (!Token(buf)) +			return false; + +		sscanf(buf, "%u", &val); +		out = val; +	} + +	return true; +} + +BOOL CResFile::operator>>(POINT& outPoint) { +#line 356 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +		if (!(*this >> outPoint.y)) return false; +		if (!(*this >> outPoint.x)) return false; +	} else { +		if (!(*this >> outPoint.x)) return false; +		if (!(*this >> outPoint.y)) return false; +	} + +	return true; +} + +BOOL CResFile::operator>>(RECT& outRect) { +#line 377 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +		if (!(*this >> outRect.top)) return false; +		if (!(*this >> outRect.left)) return false; +		if (!(*this >> outRect.bottom)) return false; +		if (!(*this >> outRect.right)) return false; +	} else { +		if (!(*this >> outRect.left)) return false; +		if (!(*this >> outRect.top)) return false; +		if (!(*this >> outRect.right)) return false; +		if (!(*this >> outRect.bottom)) return false; +	} + +	return true; +} + +BOOL CResFile::operator>>(SIZE& outSize) { +#line 406 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +		if (!(*this >> outSize.cy)) return false; +		if (!(*this >> outSize.cx)) return false; +	} else { +		if (!(*this >> outSize.cx)) return false; +		if (!(*this >> outSize.cy)) return false; +	} + +	return true; +} + +BOOL CResFile::operator>>(char* outStr) { +#line 427 +	_ASSERT(mBuffer); + +	if (mIsBinaryMode) { +#line 431 +		_ASSERT(mRemaining >= 1); +		mRemaining--; +		int len = mPos[0] + 1; +		mPos++; + +#line 435 +		_ASSERT(mRemaining >= len); +		mRemaining -= len; +		memcpy(outStr, mPos, len); +		mPos += len; +	} else { +		char buf[256]; +		char *p = buf; + +		while (*mPos == ' ' || *mPos == '\t' || *mPos == '\n' || *mPos == '\r' || *mPos == ',' || *mPos == '(') { +			if (*mPos == '(') { +				while (*mPos != ')') +					mPos++; +			} +			mPos++; +		} + +		if (*mPos == '\0') +			return false; + +		while (*mPos != '\n' && *mPos != '\r' && *mPos != '\0') { +			*p = *mPos; +			p++; +			mPos++; +		} + +		*p = 0; +		strcpy(outStr, buf); +	} + +	return true; +} + +BOOL CResFile::operator>>(CString& outStr) { +#line 469 +	_ASSERT(mBuffer); +	char buf[256]; +	*this >> buf; +	outStr = buf; +	return true; +} + +void CResFile::SkipDescriptor() { +	if (mIsBinaryMode) { +#line 481 +		_ASSERT(mRemaining >= 1); +		mRemaining--; +		mPos++; +	} +} + +void CResFile::End() { +#line 489 +	_ASSERT(mRemaining == 0); +} + diff --git a/src/T2DLL/CResFile.h b/src/T2DLL/CResFile.h new file mode 100644 index 0000000..5c10f21 --- /dev/null +++ b/src/T2DLL/CResFile.h @@ -0,0 +1,50 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT CResFile { +public: +	CResFile(); +	virtual ~CResFile(); +	BOOL OpenResource(HINSTANCE inst, int name, int type); +	BOOL OpenResource(HINSTANCE inst, const char* name, int type); +	BOOL OpenResource(HINSTANCE inst, int name, const char* type); +	BOOL OpenResource(HINSTANCE inst, const char* name, const char* type); +	BOOL OpenResource(HINSTANCE inst, HRSRC rsrc); +	BOOL OpenResource(const char* path, int name, int type); +protected: +	void SetupResource(); +	void Reset(); +	BOOL Token(char* outStr); +public: +	BOOL operator>>(unsigned char& out); +	BOOL operator>>(int& out); +	BOOL operator>>(short& out); +	BOOL operator>>(long& out); +	BOOL operator>>(unsigned int& out); +	BOOL operator>>(unsigned long& out); +	BOOL operator>>(unsigned short& out); +	BOOL operator>>(POINT& outPoint); +	BOOL operator>>(RECT& outRect); +	BOOL operator>>(SIZE& outSize); +	BOOL operator>>(char* outStr); +	BOOL operator>>(CString& outStr); +	void SkipDescriptor(); +	void End(); + +	void GetResourceInfo(HINSTANCE* outInstance, HRSRC* outRsrc) const { +		*outInstance = mInstance; +		*outRsrc = mRsrc; +	} + +	BOOL IsBinaryMode() const { return mIsBinaryMode; } +	BOOL IsSubPlugin() const { return mIsSubPlugin; } + +private: +	BOOL mIsBinaryMode; +	HINSTANCE mInstance; +	HRSRC mRsrc; +	char *mBuffer; +	char *mPos; +	unsigned int mRemaining; +	BOOL mIsSubPlugin; +}; diff --git a/src/T2DLL/CResourcePlugin.cpp b/src/T2DLL/CResourcePlugin.cpp new file mode 100644 index 0000000..833d601 --- /dev/null +++ b/src/T2DLL/CResourcePlugin.cpp @@ -0,0 +1,9 @@ +#include "CResourcePlugin.h" + +CResourcePlugin::CResourcePlugin(DWORD type, T2PluginSpecifier& specifier) +	: CFilePlugin(type, specifier) +{ +} + +/*virtual*/ CResourcePlugin::~CResourcePlugin() { +} diff --git a/src/T2DLL/CResourcePlugin.h b/src/T2DLL/CResourcePlugin.h new file mode 100644 index 0000000..a253742 --- /dev/null +++ b/src/T2DLL/CResourcePlugin.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" +#include "CFilePlugin.h" + +class DLL_EXPORT CResourcePlugin : public CFilePlugin { +public: +	CResourcePlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~CResourcePlugin(); + +	virtual DWORD GetPluginStyle() { return 'RPlg'; } + +protected: +	int m68; // unknown +}; diff --git a/src/T2DLL/CToggleButtonDisabled.cpp b/src/T2DLL/CToggleButtonDisabled.cpp new file mode 100644 index 0000000..e31ae08 --- /dev/null +++ b/src/T2DLL/CToggleButtonDisabled.cpp @@ -0,0 +1,86 @@ +#include "CToggleButtonDisabled.h" +#include "T2BitImage.h" + +CToggleButtonDisabled::CToggleButtonDisabled(T2TowerDoc* towerDoc, T2ImageObj* imageObj, CPalette* palette) +	: T2DlgItem(towerDoc, imageObj, palette) +{ +} + +/*virtual*/ BOOL CToggleButtonDisabled::Create(const char* windowName, DWORD style, const RECT& rect, CWnd* parentWnd, UINT nId) { +	CRect rect1 = rect; +	CRect rect2; + +	if (GetObjectImage(rect2, windowName, -1, 0, 0, 255)) { +		rect1.right = rect1.left + rect2.Width(); +		rect1.bottom = rect1.top + rect2.Height(); +	} else { +		rect1.right = rect1.left + 20; +		rect1.bottom = rect1.top + 20; +	} + +	return T2DlgItem::Create(windowName, style, rect1, parentWnd, nId); +} + +/*virtual*/ void CToggleButtonDisabled::SetValue(int value) { +	T2DlgItem::SetValue(value); + +	if (IsWindowEnabled()) { +		if (mValue == 0) +			SetPattern(0); +		else if (mValue == 1) +			SetPattern(100); +	} +} + +void CToggleButtonDisabled::Enable() { +	EnableWindow(true); +	SetValue(mValue); +} + +void CToggleButtonDisabled::Disable() { +	EnableWindow(false); +	SetPattern(200); +} + +/*virtual*/ BOOL CToggleButtonDisabled::OnT2DlgItemEraseBkgnd(CDC* dc) { +	CRect clientRect; +	GetClientRect(clientRect); + +	int savedDC = dc->SaveDC(); + +	dc->SelectPalette(mPalette, false); +	dc->RealizePalette(); + +	CPen pen; +	CBrush brush; + +	CString text; +	GetWindowText(text); + +	RECT imageRect; +	T2BitImage *image = GetObjectImage(imageRect, text, GetPattern(), 0, 0, 255); +	if (image) +		image->CopyImage(dc, imageRect, clientRect, 0, NULL); + +	dc->RestoreDC(savedDC); + +	return true; +} + +/*virtual*/ void CToggleButtonDisabled::OnT2DlgItemLButtonDown(UINT nFlags, CPoint pt) { +	SetCapture(); +	m74 = true; + +	if (IsWindowEnabled()) { +		SetValue(!mValue); +		Notify(mValue ? 2 : 3, NULL); +	} +} + +/*virtual*/ void CToggleButtonDisabled::OnT2DlgItemLButtonUp(UINT nFlags, CPoint pt) { +	ReleaseCapture(); +	m74 = false; +} + +/*virtual*/ void CToggleButtonDisabled::OnT2DlgItemMouseMove(UINT nFlags, CPoint pt) { +} diff --git a/src/T2DLL/CToggleButtonDisabled.h b/src/T2DLL/CToggleButtonDisabled.h new file mode 100644 index 0000000..5604257 --- /dev/null +++ b/src/T2DLL/CToggleButtonDisabled.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" +#include "T2DlgItem.h" + +class DLL_EXPORT CToggleButtonDisabled : public T2DlgItem { +public: +	CToggleButtonDisabled(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual BOOL Create(const char* windowName, DWORD style, const RECT& rect, CWnd* parentWnd, UINT nId); +	virtual void SetValue(int value); +	void Enable(); +	void Disable(); +protected: +	virtual BOOL OnT2DlgItemEraseBkgnd(CDC* dc); +	virtual void OnT2DlgItemLButtonDown(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemLButtonUp(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemMouseMove(UINT nFlags, CPoint pt); +}; diff --git a/src/T2DLL/CTokenizer.cpp b/src/T2DLL/CTokenizer.cpp new file mode 100644 index 0000000..e205c0b --- /dev/null +++ b/src/T2DLL/CTokenizer.cpp @@ -0,0 +1,48 @@ +#include "CTokenizer.h" + +CTokenizer::CTokenizer(char *str, const char *newLineChars, const char *spaceChars) +	: mNext(str) +	, mCurrent(NULL) +	, mNewLineChars(newLineChars) +	, mSpaceChars(spaceChars) +{ +#line 31 +	_ASSERT(mNext); + +	if (!mNewLineChars) +		mNewLineChars = "\r\n\t"; +	if (!mSpaceChars) +		mSpaceChars = " \r\n\t"; +} + +/*virtual*/ CTokenizer::~CTokenizer() { +} + +CTokenizer& CTokenizer::operator=(char *str) { +	mNext = str; +	mCurrent = NULL; + +#line 49 +	_ASSERT(mNext); +	return *this; +} + +const char* CTokenizer::NextToken(const char *delim) { +#line 58 +	_ASSERT(delim); + +	mCurrent = mNext; + +	if (mNext) { +		mNext = (char *) _mbspbrk((unsigned char *) mNext, (const unsigned char *) delim); +		if (mNext) { +			mNext[0] = 0; +			mNext++; +			mNext += _mbsspn((unsigned char *) mNext, (const unsigned char *) delim); +			if (mNext[0] == 0) +				mNext = NULL; +		} +	} + +	return mCurrent; +} diff --git a/src/T2DLL/CTokenizer.h b/src/T2DLL/CTokenizer.h new file mode 100644 index 0000000..3ad28a5 --- /dev/null +++ b/src/T2DLL/CTokenizer.h @@ -0,0 +1,33 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT CTokenizer { +public: +	CTokenizer(char *str, const char *newLineChars = NULL, const char *spaceChars = NULL); +	virtual ~CTokenizer(); +	CTokenizer& operator=(char *str); + +	const char* Current() const { +		return mCurrent; +	} + +	const char* NextString(const char *delim = NULL) { +		return NextToken(delim ? delim : mNewLineChars); +	} + +	const char* NextWord(const char *delim = NULL) { +		return NextToken(delim ? delim : mSpaceChars); +	} + +	int NextInteger(const char *delim = NULL) { +		return atoi(NextToken(delim ? delim : mSpaceChars)); +	} + +protected: +	const char* NextToken(const char *delim); + +	char *mNext; +	char *mCurrent; +	const char *mNewLineChars; +	const char *mSpaceChars; +}; diff --git a/src/T2DLL/GlobalFunc.cpp b/src/T2DLL/GlobalFunc.cpp new file mode 100644 index 0000000..b210cc6 --- /dev/null +++ b/src/T2DLL/GlobalFunc.cpp @@ -0,0 +1,82 @@ +#include "GlobalFunc.h" + +char *strtokEx(char *, const char *, char **) { +} + +void InsetRect(RECT *, int, int) { +} + +void SetPt(POINT *, int, int) { +} + +HBITMAP Create256DIBitmap(HDC, int, int) { +} + +LOGPALETTE *ConvACTPalette(ACTPALETTEENTRY *) { +} + +LOGPALETTE *LoadACTPaletteEntries(HINSTANCE, int) { +} + +void FFSetStaticForce(int, int) { +} + +CString GetInstallSource() { +} + +CString GetInstallSourceDrive() { +} + +T2TowerDoc *GetCurrentT2TowerDoc() { +} + +HINSTANCE GetWorldModuleHandle() { +} + +CString GetModuleName(HINSTANCE) { +} + +unsigned int TickCount() { +} + +int DispatchOptionEvent(OPTIONEVENTTYPE, void *) { +} + +CFile *OpenSubPluginFS(const char *, int, int, SUBPLUGINFSENTRY *) { +} + +void __Rep0(const char *, int, const char *) { +} + +void __Rep1(const char *, int, const char *, unsigned long) { +} + +void __Rep2(const char *, int, const char *, unsigned long, unsigned long) { +} + +void GetTowerDirectory(char *) { +} + +CString GetTowerDirectory() { +} + +CString LoadStringA(HINSTANCE, int, int) { +} + +CString LoadStringTable(HINSTANCE, int, int) { +} + +void CopyPalette(LOGPALETTE *, LOGPALETTE *, int, int, int) { +} + +void WriteMachineProfileString(const char *, const char *, const char *) { +} + +void WriteMachineProfileInt(const char *, const char *, int) { +} + +CString GetMachineProfileString(const char *, const char *, const char *) { +} + +int GetMachineProfileInt(const char *, const char *, int) { +} diff --git a/src/T2DLL/GlobalFunc.h b/src/T2DLL/GlobalFunc.h new file mode 100644 index 0000000..9375677 --- /dev/null +++ b/src/T2DLL/GlobalFunc.h @@ -0,0 +1,40 @@ +#pragma once +#include "common.h" + +struct ACTPALETTEENTRY; +struct SUBPLUGINFSENTRY { +	int spfse_m0; +	int spfse_m4; +	int spfse_m8; +	int spfse_mC; // size? +}; + +char *strtokEx(char *, const char *, char **); +void InsetRect(RECT *, int, int); +void SetPt(POINT *, int, int); +HBITMAP Create256DIBitmap(HDC, int, int); +LOGPALETTE *ConvACTPalette(ACTPALETTEENTRY *); +LOGPALETTE *LoadACTPaletteEntries(HINSTANCE, int); +void FFSetStaticForce(int, int); +CString GetInstallSource(); +CString GetInstallSourceDrive(); +T2TowerDoc *GetCurrentT2TowerDoc(); +HINSTANCE GetWorldModuleHandle(); +CString GetModuleName(HINSTANCE); +unsigned int TickCount(); +int DispatchOptionEvent(OPTIONEVENTTYPE, void *); +CFile *OpenSubPluginFS(const char *, int, int, SUBPLUGINFSENTRY *); +void __Rep0(const char *, int, const char *); +void __Rep1(const char *, int, const char *, unsigned long); +void __Rep2(const char *, int, const char *, unsigned long, unsigned long); +void GetTowerDirectory(char *); +CString GetTowerDirectory(); +CString LoadStringA(HINSTANCE, int, int); +CString LoadStringTable(HINSTANCE, int, int); +void CopyPalette(LOGPALETTE *, LOGPALETTE *, int, int, int); +void WriteMachineProfileString(const char *, const char *, const char *); +void WriteMachineProfileInt(const char *, const char *, int); +CString GetMachineProfileString(const char *, const char *, const char *); +int GetMachineProfileInt(const char *, const char *, int); + +DLL_EXPORT CT2App *gT2App; diff --git a/src/T2DLL/LArray.cpp b/src/T2DLL/LArray.cpp new file mode 100644 index 0000000..647162f --- /dev/null +++ b/src/T2DLL/LArray.cpp @@ -0,0 +1,406 @@ +#include "LArray.h" +#include "T2Archive.h" + +// unknown/assumed name -- not in T2DLL exports! +class LDefaultComparator : public LComparator { +public: +	LDefaultComparator(); +	virtual ~LDefaultComparator(); +	virtual int Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	virtual BOOL IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	static LDefaultComparator* GetComparator(); +protected: +	static LDefaultComparator* sDefaultComparator; +}; + +LArray::LArray() { +	init(sizeof(void *), NULL, false); +} + +LArray::LArray(int size, LComparator* comparator, BOOL keepSorted) { +	init(size, comparator, keepSorted); +} + +void LArray::init(int size, LComparator* comparator, BOOL keepSorted) { +	mKeepSorted = keepSorted; +	mOwnsComparator = true; +	if (!comparator) { +		mComparator = LDefaultComparator::GetComparator(); +		mOwnsComparator = false; +	} else { +		mComparator = comparator; +	} +	mItemSize = size; +	mItemCount = 0; +	mExpandSize = 10; +	mBuffer = malloc(mExpandSize * mItemSize); +} + +LArray::~LArray() { +	if (mComparator && mOwnsComparator) +		delete mComparator; +	free(mBuffer); +} + +/*virtual*/ int LArray::GetCount() const { +	return mItemCount; +} + +void LArray::Expand(int amount) { +	int threshold = mItemCount + amount; +	if (threshold > mExpandSize) { +		mExpandSize = threshold + 10; +		mBuffer = realloc(mBuffer, mExpandSize * mItemSize); +	} +	mItemCount += amount; +} + +void LArray::AdjustAllocation(int amount) { +	if (amount > mExpandSize) { +		mExpandSize = amount + 10; +		mBuffer = realloc(mBuffer, mExpandSize * mItemSize); +	} +} + +void LArray::SetKeepSorted(int keepSorted) { +	mKeepSorted = keepSorted; +} + +/*virtual*/ void LArray::InsertItemsAt(int count, int where, const void* data) { +	if (!mKeepSorted) { +		if (where == 0) +			where = 1; + +		int oldCount = mItemCount; +		Expand(count); +		memmove( +			(char *) mBuffer + mItemSize * (where - 1 + count), +			(char *) mBuffer + mItemSize * (where - 1), +			mItemSize * (oldCount - (where - 1)) +			); + +		if (data) { +			for (int i = 0; i < count; i++) { +				memcpy((char *) mBuffer + mItemSize * (where - 1 + i), data, mItemSize); +			} +		} +	} else { +		for (int i = 0; i < count; i++) { +			Add((const char *) data + i * mItemSize); +		} +	} +} + +/*virtual*/ void LArray::RemoveItemsAt(int count, int where) { +#line 94 +	_ASSERT(where > 0); + +	if (where < (mItemCount + 1)) { +		memmove( +			(char *) mBuffer + mItemSize * (where - 1), +			(char *) mBuffer + mItemSize * (where - 1 + count), +			mItemSize * (mItemCount - (where - 1 + count)) +		); +	} + +	mItemCount -= count; +} + +/*virtual*/ void LArray::Remove(const void* item) { +	int index = FetchIndexOf(item); +	if (index != 0) +		RemoveItemsAt(1, index); +} + +/*virtual*/ int LArray::FetchIndexOf(const void* item) const { +	char *p = (char *) mBuffer; +	for (int i = 0; i < mItemCount; i++) { +		if (memcmp(p, item, mItemSize) == 0) +			return i + 1; +		p += mItemSize; +	} +	return 0; +} + +/*virtual*/ int LArray::FetchItemAt(int index, void* outItem) const { +#line 123 +	_ASSERT(index > 0); + +	if (index > mItemCount) +		return false; + +	memcpy(outItem, (char *) mBuffer + mItemSize * (index - 1), mItemSize); +	return true; +} + +/*virtual*/ void LArray::AssignItemsAt(int count, int where, void* data) { +	if (!mKeepSorted) { +#line 134 +		_ASSERT(where > 0); + +		if ((where - 1 + count) > mItemCount) +			Expand((where - 1 + count) - mItemCount); + +		if (data) { +			for (int i = 0; i < count; i++) { +				memcpy((char *) mBuffer + mItemSize * (where - 1 + i), data, mItemSize); +			} +		} +	} else { +		if ((where - 1 + count) > mItemCount) +			Expand((where - 1 + count) - mItemCount); + +		RemoveItemsAt(count, where); +		InsertItemsAt(count, where, data); +	} +} + +/*virtual*/ void LArray::Add(const void* item) { +	if (!mKeepSorted) { +		Expand(1); +		memcpy((char *) mBuffer + mItemSize * (mItemCount - 1), item, mItemSize); +	} else { +		char *p = (char *) mBuffer; +		int i; + +		for (i = 0; i < mItemCount; i++) { +			if (mComparator->Compare(item, p, mItemSize, mItemSize) < 0) { +				mKeepSorted = false; +				InsertItemsAt(1, i + 1, item); +				mKeepSorted = true; +				break; +			} +			p += mItemSize; +		} + +		if (i == mItemCount) { +			mKeepSorted = false; +			Add(item); +			mKeepSorted = true; +		} +	} +} + +void LArray::SetComparator(LComparator* comparator) { +	if (mComparator && mOwnsComparator) +		delete mComparator; +	mComparator = comparator; +} + +/*virtual*/ void LArray::ReadAsWord(T2Archive& archive) { +	int itemSize; +	int count; +	int i; +	unsigned char zero; +	int totalSize; +	unsigned short item; + +	archive >> itemSize; +	archive >> count; +	archive >> i; +	archive >> i; +	archive >> zero; +	archive >> zero; +	archive >> totalSize; + +	if (mItemCount > 0) +		RemoveItemsAt(mItemCount, 1); + +	for (i = 0; i < count; i++) { +		archive >> item; +		unsigned int v = item; +		Add(&v); +	} + +	for (; i < totalSize / itemSize; i++) { +		archive >> item; +	} +} + +/*virtual*/ void LArray::WriteAsWord(T2Archive& archive) { +	int boop = 2; +	archive << boop; + +	boop = mItemCount; +	archive << boop; + +	int byteCount = boop * 2; +	archive << byteCount; +	archive << byteCount; + +	unsigned char zero = 0; +	archive << zero; + +	zero = 0; +	archive << zero; + +	int totalSize = mItemCount * 2; +	archive << totalSize; + +	LArrayIterator iter(*this); +	unsigned int item; +	while (iter.Next(&item)) { +		unsigned short v = item; +		archive << v; +	} +} + +/*virtual*/ void LArray::ReadAsDWord(T2Archive& archive) { +	unsigned long code; +	archive >> code; +#line 261 +	_ASSERT(code == 'Darr'); + +	if (mItemCount > 0) +		RemoveItemsAt(mItemCount, 1); + +	int count; +	archive >> count; + +	unsigned int item; +	for (int i = 0; i < count; i++) { +		archive >> item; +		Add(&item); +	} +} + +/*virtual*/ void LArray::ReadAsChar(T2Archive& archive) { +	if (mItemCount > 0) +		RemoveItemsAt(mItemCount, 1); + +	int i; +	int elemSize; +	int elemCount; +	int byteCount; +	int byteCount2; +	int totalSize; +	unsigned char buf; + +	archive >> elemSize; +	archive >> elemCount; +	archive >> byteCount; +	archive >> byteCount2; +	archive >> totalSize; + +	for (i = 0; i < elemCount; i++) { +		archive >> buf; +		Add(&buf); +	} +	for (; i < totalSize; i++) { +		archive >> buf; +	} +} + +/*virtual*/ void LArray::WriteAsDWord(T2Archive& archive) { +	unsigned long code = 'Darr'; +	archive << code; +	archive << mItemCount; + +	LArrayIterator iter(*this); +	unsigned int item; +	while (iter.Next(&item)) { +		archive << item; +	} +} + +/*virtual*/ void LArray::WriteAsChar(T2Archive& archive) { +	int elemSize = 1; +	int byteCount = mItemCount; +	int byteCount2 = byteCount; +	int totalSize = byteCount; + +	archive << elemSize; +	archive << mItemCount; +	archive << byteCount; +	archive << byteCount2; +	archive << totalSize; + +	LArrayIterator iter(*this); +	unsigned char item; +	while (iter.Next(&item)) { +		archive << item; +	} +} + +LArrayIterator::LArrayIterator(const LArray& array, int index) { +	mArray = &array; +	mNextIndex = index; +} + +LArrayIterator::LArrayIterator(const LArrayIterator& iter) { +	mArray = iter.mArray; +	mNextIndex = iter.mNextIndex; +} + +LArrayIterator::~LArrayIterator() { +} + +void LArrayIterator::ResetTo(int index) { +#line 366 +	_ASSERT(index == 0 || index == 1); +	mNextIndex = 1; +} + +void LArrayIterator::Rewind() { +	mNextIndex = 1; +} + +void LArrayIterator::Seek(const LArrayIterator& iter) { +	mArray = iter.mArray; +	mNextIndex = iter.mNextIndex; +} + +BOOL LArrayIterator::Next(void* item) { +	if (mNextIndex > mArray->GetCount()) { +		mCurrentIndex = 0; +		return false; +	} else { +		mArray->FetchItemAt(mNextIndex, item); +		mCurrentIndex = mNextIndex; +		mNextIndex++; +		return true; +	} +} + +BOOL LArrayIterator::Previous(void* item) { +	mCurrentIndex = mNextIndex; +	mNextIndex--; +	if (mNextIndex < 1) { +		mCurrentIndex = 0; +		return false; +	} else { +		mArray->FetchItemAt(mNextIndex, item); +		return true; +	} +} + + + +LDefaultComparator* LDefaultComparator::sDefaultComparator; + +/*virtual*/ int LDefaultComparator::Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	int result = memcmp(inItemOne, inItemTwo, (inSizeOne < inSizeTwo) ? inSizeOne : inSizeTwo); +	if (result == 0) +		result = inSizeOne - inSizeTwo; +	return result; +} + +/*virtual*/ BOOL LDefaultComparator::IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	if (inSizeOne != inSizeTwo) { +		return 0; +	} else { +		return memcmp(inItemOne, inItemTwo, inSizeOne) == 0; +	} +} + +LDefaultComparator* LDefaultComparator::GetComparator() { +	if (!sDefaultComparator) +		sDefaultComparator = new LDefaultComparator; +	return sDefaultComparator; +} + +LDefaultComparator::LDefaultComparator() { +} + +/*virtual*/ LDefaultComparator::~LDefaultComparator() { +} diff --git a/src/T2DLL/LArray.h b/src/T2DLL/LArray.h new file mode 100644 index 0000000..110e3bc --- /dev/null +++ b/src/T2DLL/LArray.h @@ -0,0 +1,60 @@ +#pragma once +#include "common.h" +#include "LComparator.h" + +class DLL_EXPORT LArray { +public: +	LArray(); +	LArray(int size, LComparator* comparator = NULL, BOOL keepSorted = false); +	void init(int size, LComparator* comparator, BOOL keepSorted); +	~LArray(); +	virtual int GetCount() const; +protected: +	void Expand(int amount); +public: +	void AdjustAllocation(int amount); +	void SetKeepSorted(BOOL keepSorted); +	virtual void InsertItemsAt(int count, int where, const void* data); +	virtual void RemoveItemsAt(int count, int where); +	virtual void Remove(const void* item); +	virtual int FetchIndexOf(const void* item) const; +	virtual int FetchItemAt(int index, void* outItem) const; +	virtual void AssignItemsAt(int count, int where, void* data); +	virtual void Add(const void* item); +	void SetComparator(LComparator* comparator); +	virtual void ReadAsWord(T2Archive& archive); +	virtual void WriteAsWord(T2Archive& archive); +	virtual void ReadAsDWord(T2Archive& archive); +	virtual void ReadAsChar(T2Archive& archive); +	virtual void WriteAsDWord(T2Archive& archive); +	virtual void WriteAsChar(T2Archive& archive); + +protected: +	BOOL mOwnsComparator; +	int mItemSize; +	int mItemCount; +	void *mBuffer; +	int mExpandSize; +	LComparator *mComparator; +	BOOL mKeepSorted; +}; + +class DLL_EXPORT LArrayIterator { +public: +	LArrayIterator(const LArray& array, int index = 1); +	LArrayIterator(const LArrayIterator& iter); +	~LArrayIterator(); +	void ResetTo(int index); +	void Rewind(); +	void Seek(const LArrayIterator& iter); +	BOOL Next(void* item); +	BOOL Previous(void* item); + +	void Reset() { ResetTo(1); } +	int GetCurrentIndex() { return mCurrentIndex; } + +private: +	const LArray *mArray; +	int mNextIndex; +	int mCurrentIndex; +}; diff --git a/src/T2DLL/LAttachable.cpp b/src/T2DLL/LAttachable.cpp new file mode 100644 index 0000000..9700c4d --- /dev/null +++ b/src/T2DLL/LAttachable.cpp @@ -0,0 +1,86 @@ +#include "LArray.h" +#include "LAttachable.h" +#include "LAttachment.h" + +LAttachable::LAttachable() { +	mAttachments = NULL; +	SetDefaultAttachable(this); +} + +LAttachable::LAttachable(const LAttachable& other) { +	mAttachments = NULL; +	SetDefaultAttachable(this); +} + +/*virtual*/ LAttachable::~LAttachable() { +	RemoveAllAttachments(); +} + +/*virtual*/ void LAttachable::AddAttachment(LAttachment* attachment, LAttachment* before, BOOL setAsOwner) { +	if (!mAttachments) +		mAttachments = new LArray; + +	if (!before) { +		mAttachments->Add(&attachment); +	} else { +		int index = mAttachments->GetCount() + 1; +		if (before) { +			// bug? should this use &before? +			index = mAttachments->FetchIndexOf(before); +			if (index == 0) +				index = mAttachments->GetCount() + 1; +		} +		mAttachments->InsertItemsAt(1, index, &attachment); +	} + +	if (setAsOwner) +		attachment->SetOwnerHost(this); +} + +/*virtual*/ void LAttachable::RemoveAttachment(LAttachment* attachment) { +	if (mAttachments) { +		mAttachments->Remove(&attachment); +		if (attachment->GetOwnerHost() == this) +			attachment->SetOwnerHost(NULL); +	} +} + +/*virtual*/ void LAttachable::RemoveAllAttachments() { +	if (mAttachments) { +		LArrayIterator iter(*mAttachments); +		LAttachment *attachment; + +		while (iter.Next(&attachment)) { +			if (attachment->GetOwnerHost() == this) { +				delete attachment; +				iter.Reset(); +			} +		} + +		delete mAttachments; +		mAttachments = NULL; +	} +} + +/*virtual*/ BOOL LAttachable::ExecuteAttachments(unsigned int message, void* data) { +	BOOL result = true; +	if (mAttachments) { +		LArrayIterator iter(*mAttachments); +		LAttachment *attachment; + +		while (iter.Next(&attachment)) { +			result = result & attachment->Execute(message, data); +		} +	} +	return result; +} + +/*static*/ LAttachable* LAttachable::sDefaultAttachable; + +/*static*/ LAttachable* LAttachable::GetDefaultAttachable() { +	return sDefaultAttachable; +} + +/*static*/ void LAttachable::SetDefaultAttachable(LAttachable* attachable) { +	sDefaultAttachable = attachable; +} diff --git a/src/T2DLL/LAttachable.h b/src/T2DLL/LAttachable.h new file mode 100644 index 0000000..f06bbd9 --- /dev/null +++ b/src/T2DLL/LAttachable.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT LAttachable { +public: +	LAttachable(); +	LAttachable(const LAttachable& other); +	virtual ~LAttachable(); +	virtual void AddAttachment(LAttachment* attachment, LAttachment* before, BOOL setAsOwner); +	virtual void RemoveAttachment(LAttachment* attachment); +	virtual void RemoveAllAttachments(); +	virtual BOOL ExecuteAttachments(unsigned int message, void* data); +	static LAttachable* GetDefaultAttachable(); +	static void SetDefaultAttachable(LAttachable*); + +protected: +	static LAttachable* sDefaultAttachable; + +	LArray *mAttachments; +}; diff --git a/src/T2DLL/LAttachment.cpp b/src/T2DLL/LAttachment.cpp new file mode 100644 index 0000000..da83c32 --- /dev/null +++ b/src/T2DLL/LAttachment.cpp @@ -0,0 +1,29 @@ +#include "LAttachable.h" +#include "LAttachment.h" + +LAttachment::LAttachment(unsigned int message, BOOL executeHost) { +	mOwnerHost = NULL; +	mMessage = message; +	mExecuteHost = executeHost; +} + +/*virtual*/ LAttachment::~LAttachment() { +	if (mOwnerHost) +		mOwnerHost->RemoveAttachment(this); +} + +/*virtual*/ void LAttachment::SetExecuteHost(BOOL v) { +	mExecuteHost = v; +} + +/*virtual*/ BOOL LAttachment::Execute(unsigned int message, void* data) { +	BOOL result = true; +	if (message == mMessage || mMessage == 0) { +		ExecuteSelf(message, data); +		result = mExecuteHost; +	} +	return result; +} + +/*virtual*/ void LAttachment::ExecuteSelf(unsigned int message, void* data) { +} diff --git a/src/T2DLL/LAttachment.h b/src/T2DLL/LAttachment.h new file mode 100644 index 0000000..10b8c66 --- /dev/null +++ b/src/T2DLL/LAttachment.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT LAttachment { +public: +	LAttachment(unsigned int message = 0, BOOL executeHost = true); +	virtual ~LAttachment(); +	virtual void SetMessage(unsigned int v) { mMessage = v; } +	virtual void SetExecuteHost(BOOL v); +	virtual void SetOwnerHost(LAttachable* v) { mOwnerHost = v; } +	virtual int Execute(unsigned int message, void* data); + +	LAttachable* GetOwnerHost() const { return mOwnerHost; } +	unsigned int GetMessage() const { return mMessage; } +	BOOL GetExecuteHost() const { return mExecuteHost; } + +protected: +	virtual void ExecuteSelf(unsigned int message, void*); + +protected: +	LAttachable *mOwnerHost; +	unsigned int mMessage; +	BOOL mExecuteHost; +}; diff --git a/src/T2DLL/LBroadcaster.cpp b/src/T2DLL/LBroadcaster.cpp new file mode 100644 index 0000000..3486ce9 --- /dev/null +++ b/src/T2DLL/LBroadcaster.cpp @@ -0,0 +1,46 @@ +#include "LBroadcaster.h" +#include "LListener.h" + +LBroadcaster::LBroadcaster() { +	mBroadcasting = true; +} + +LBroadcaster::LBroadcaster(const LBroadcaster& other) { +	mBroadcasting = other.mBroadcasting; +} + +/*virtual*/ LBroadcaster::~LBroadcaster() { +	BroadcastMessage(0xFFFFFFFF, this); + +	LArrayIterator iter(mListeners); +	LListener *listener; + +	while (iter.Next(&listener)) { +		listener->RemoveBroadcaster(this); +	} +} + +void LBroadcaster::AddListener(LListener* listener) { +	// bug - should pass &listener to FetchIndexOf +	if (mListeners.FetchIndexOf(listener) == 0) { +		mListeners.Add(&listener); +		listener->AddBroadcaster(this); +	} +} + +void LBroadcaster::RemoveListener(LListener* listener) { +	mListeners.Remove(&listener); +	listener->RemoveBroadcaster(this); +} + +void LBroadcaster::BroadcastMessage(unsigned int msg, void* data) { +	if (mBroadcasting) { +		LArrayIterator iter(mListeners); +		LListener *listener; + +		while (iter.Next(&listener)) { +			if (listener->IsListening()) +				listener->ListenToMessage(msg, data); +		} +	} +} diff --git a/src/T2DLL/LBroadcaster.h b/src/T2DLL/LBroadcaster.h new file mode 100644 index 0000000..f439df3 --- /dev/null +++ b/src/T2DLL/LBroadcaster.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class DLL_EXPORT LBroadcaster { +public: +	LBroadcaster(); +	LBroadcaster(const LBroadcaster& other); +	virtual ~LBroadcaster(); +	void AddListener(LListener* listener); +	void RemoveListener(LListener* listener); +	void BroadcastMessage(unsigned int msg, void* data); + +	void StartBroadcasting() { mBroadcasting = true; } +	void StopBroadcasting() { mBroadcasting = false; } +	BOOL IsBroadcasting() const { return mBroadcasting; } + +private: +	LArray mListeners; +	BOOL mBroadcasting; +}; diff --git a/src/T2DLL/LComparator.cpp b/src/T2DLL/LComparator.cpp new file mode 100644 index 0000000..649075d --- /dev/null +++ b/src/T2DLL/LComparator.cpp @@ -0,0 +1,79 @@ +#include "LComparator.h" + +LComparator* LComparator::sComparator; + +LComparator::LComparator() { +	sComparator = NULL; +} + +/*virtual*/ LComparator::~LComparator() { +} + +/*virtual*/ int LComparator::Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	const unsigned char *a = (const unsigned char *) inItemOne; +	const unsigned char *b = (const unsigned char *) inItemTwo; +	unsigned int size = inSizeOne; +	if (inSizeTwo < inSizeOne) +		size = inSizeTwo; + +	while (size > 0) { +		if (*a != *b) +			return *a - *b; +		a++; +		b++; +		size--; +	} + +	return inSizeOne - inSizeTwo; +} + +/*virtual*/ BOOL LComparator::IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	return Compare(inItemOne, inItemTwo, inSizeOne, inSizeTwo) == 0; +} + +/*virtual*/ int LComparator::CompareToKey(const void* inItem, unsigned int inSize, const void* inKey) const { +#line 86 +	_ASSERT("CompareToKey not implemented"); +	return 1; +} + +/*virtual*/ BOOL LComparator::IsEqualToKey(const void* inItem, unsigned int inSize, const void* inKey) const { +	return CompareToKey(inItem, inSize, inKey) == 0; +} + +LComparator* LComparator::GetComparator() { +	if (!sComparator) +		sComparator = new LComparator; +	return sComparator; +} + +/*virtual*/ LComparator* LComparator::Clone() { +	return new LComparator; +} + +LLongComparator* LLongComparator::sLongComparator; + +LLongComparator::LLongComparator() { +	sLongComparator = NULL; +} + +/*virtual*/ LLongComparator::~LLongComparator() { +} + +/*virtual*/ int LLongComparator::Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	return *((const long *) inItemOne) - *((const long *) inItemTwo); +} + +/*virtual*/ BOOL LLongComparator::IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const { +	return *((const long *) inItemOne) == *((const long *) inItemTwo); +} + +LLongComparator* LLongComparator::GetComparator() { +	if (!sLongComparator) +		sLongComparator = new LLongComparator; +	return sLongComparator; +} + +/*virtual*/ LComparator* LLongComparator::Clone() { +	return new LLongComparator; +} diff --git a/src/T2DLL/LComparator.h b/src/T2DLL/LComparator.h new file mode 100644 index 0000000..8f51bd0 --- /dev/null +++ b/src/T2DLL/LComparator.h @@ -0,0 +1,28 @@ +#pragma once +#include "common.h" + +class LComparator { +public: +	LComparator(); +	virtual ~LComparator(); +	virtual int Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	virtual BOOL IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	virtual int CompareToKey(const void* inItem, unsigned int inSize, const void* inKey) const; +	virtual BOOL IsEqualToKey(const void* inItem, unsigned int inSize, const void* inKey) const; +	static LComparator* GetComparator(); +	virtual LComparator* Clone(); +protected: +	static LComparator* sComparator; +}; + +class LLongComparator : public LComparator { +public: +	LLongComparator(); +	virtual ~LLongComparator(); +	virtual int Compare(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	virtual BOOL IsEqualTo(const void* inItemOne, const void* inItemTwo, unsigned int inSizeOne, unsigned int inSizeTwo) const; +	static LLongComparator* GetComparator(); +	virtual LComparator* Clone(); +protected: +	static LLongComparator* sLongComparator; +}; diff --git a/src/T2DLL/LListener.cpp b/src/T2DLL/LListener.cpp new file mode 100644 index 0000000..bb4ca1f --- /dev/null +++ b/src/T2DLL/LListener.cpp @@ -0,0 +1,26 @@ +#include "LBroadcaster.h" +#include "LListener.h" + +LListener::LListener() { +	mListening = true; +} + +LListener::LListener(const LListener& other) { +	mListening = other.mListening; +} + +/*virtual*/ LListener::~LListener() { +	for (int index = mBroadcasters.GetCount(); index > 0; index--) { +		LBroadcaster *broadcaster; +		if (mBroadcasters.FetchItemAt(index, &broadcaster)) +			broadcaster->RemoveListener(this); +	} +} + +void LListener::AddBroadcaster(LBroadcaster* broadcaster) { +	mBroadcasters.Add(&broadcaster); +} + +void LListener::RemoveBroadcaster(LBroadcaster* broadcaster) { +	mBroadcasters.Remove(&broadcaster); +} diff --git a/src/T2DLL/LListener.h b/src/T2DLL/LListener.h new file mode 100644 index 0000000..4632ff2 --- /dev/null +++ b/src/T2DLL/LListener.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class DLL_EXPORT LListener { +public: +	LListener(); +	LListener(const LListener& other); +	virtual ~LListener(); + +	void StartListening() { mListening = true; } +	void StopListening() { mListening = false; } +	BOOL IsListening() const { return mListening; } +	virtual void ListenToMessage(unsigned int msg, void* data) {} + +protected: +	friend class LBroadcaster; +	void AddBroadcaster(LBroadcaster* broadcaster); +	void RemoveBroadcaster(LBroadcaster* broadcaster); + +private: +	LArray mBroadcasters; +	BOOL mListening; +}; diff --git a/src/T2DLL/LPeriodical.cpp b/src/T2DLL/LPeriodical.cpp new file mode 100644 index 0000000..1d75869 --- /dev/null +++ b/src/T2DLL/LPeriodical.cpp @@ -0,0 +1,71 @@ +#include "LArray.h" +#include "LPeriodical.h" + +/*static*/ LArray* LPeriodical::sIdlerQ = NULL; +/*static*/ LArray* LPeriodical::sRepeaterQ = NULL; + +LPeriodical::LPeriodical() { +} + +/*virtual*/ LPeriodical::~LPeriodical() { +	StopIdling(); +	StopRepeating(); +} + +/*virtual*/ void LPeriodical::StartIdling() { +	if (!sIdlerQ) +		sIdlerQ = new LArray; + +	// how the hell is this supposed to work?? +	// surely it should pass &this... +	if (sIdlerQ->FetchIndexOf(this) == 0) +		sIdlerQ->Add(this); +} + +/*virtual*/ void LPeriodical::StopIdling() { +	if (sIdlerQ) +		sIdlerQ->Remove(this); +} + +/*static*/ void LPeriodical::DevoteTimeToIdlers() { +	if (sIdlerQ) { +		LArrayIterator iter(*sIdlerQ); +		LPeriodical *p; + +		while (iter.Next(&p)) +			p->SpendTime(); +	} +} + +/*virtual*/ void LPeriodical::StartRepeating() { +	if (!sRepeaterQ) +		sRepeaterQ = new LArray; + +	// how the hell is this supposed to work?? +	// surely it should pass &this... +	if (sRepeaterQ->FetchIndexOf(this) == 0) +		sRepeaterQ->Add(this); +} + +/*virtual*/ void LPeriodical::StopRepeating() { +	if (sRepeaterQ) +		sRepeaterQ->Remove(this); +} + +/*static*/ void LPeriodical::DevoteTimeToRepeaters() { +	if (sRepeaterQ) { +		LArrayIterator iter(*sRepeaterQ); +		LPeriodical *p; + +		while (iter.Next(&p)) +			p->SpendTime(); +	} +} + +/*static*/ void LPeriodical::DeleteIdlerAndRepeaterQueues() { +	delete sIdlerQ; +	sIdlerQ = NULL; + +	delete sRepeaterQ; +	sRepeaterQ = NULL; +} diff --git a/src/T2DLL/LPeriodical.h b/src/T2DLL/LPeriodical.h new file mode 100644 index 0000000..ca66d6d --- /dev/null +++ b/src/T2DLL/LPeriodical.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT LPeriodical { +public: +	LPeriodical(); +	virtual ~LPeriodical(); + +	virtual void StartIdling(); +	virtual void StopIdling(); +	static void DevoteTimeToIdlers(); + +	virtual void StartRepeating(); +	virtual void StopRepeating(); +	static void DevoteTimeToRepeaters(); +	static void DeleteIdlerAndRepeaterQueues(); + +	virtual void SpendTime() = 0; + +protected: +	static LArray* sIdlerQ; +	static LArray* sRepeaterQ; +}; diff --git a/src/T2DLL/MMIO.h b/src/T2DLL/MMIO.h new file mode 100644 index 0000000..11303fa --- /dev/null +++ b/src/T2DLL/MMIO.h @@ -0,0 +1,54 @@ +#pragma once +#include "common.h" + +class CMMChunk { +protected: +	CMMChunk(); +public: +	CMMChunk& operator=(const CMMChunk&); +}; +class CMMIdChunk { +public: +	CMMIdChunk& operator=(const CMMIdChunk&); +	CMMIdChunk(char, char, char, char); +	CMMIdChunk(const char*, unsigned int); +}; +class CMMTypeChunk { +public: +	CMMTypeChunk& operator=(const CMMTypeChunk&); +	CMMTypeChunk(char, char, char, char); +	CMMTypeChunk(const char*, unsigned int); +}; +class CMMIOInfo { +public: +	CMMIOInfo& operator=(const CMMIOInfo&); +	CMMIOInfo(); +}; +class CMMMemoryIOInfo { +public: +	CMMMemoryIOInfo& operator=(const CMMMemoryIOInfo&); +	CMMMemoryIOInfo(long, unsigned long); +	CMMMemoryIOInfo(char*, long, unsigned long); +}; +class CMMIO { +public: +	virtual ~CMMIO(); +	CMMIO(); +	CMMIO(HMMIO); +	CMMIO(const char*, unsigned long); +	CMMIO(CMMMemoryIOInfo&); +	unsigned int Close(unsigned int); +	long Read(char*, long); +	unsigned int Ascend(CMMChunk&, unsigned int); +	unsigned int Descend(CMMChunk&, unsigned int); +	unsigned int Descend(CMMChunk&, CMMChunk&, unsigned int); +	long Seek(long, int); +	long SendMessageA(unsigned int, long, long); +	unsigned int SetBuffer(char*, long, unsigned int); +	long Write(const char*, long); +	unsigned int GetInfo(CMMIOInfo&, unsigned int); +	unsigned int SetInfo(CMMIOInfo&, unsigned int); +	unsigned int Advance(CMMIOInfo&, unsigned int); +	void Open(const char*, unsigned long); +	void Open(CMMMemoryIOInfo&); +}; diff --git a/src/T2DLL/Mmio.cpp b/src/T2DLL/Mmio.cpp new file mode 100644 index 0000000..5a11e85 --- /dev/null +++ b/src/T2DLL/Mmio.cpp @@ -0,0 +1,97 @@ +#include "MMIO.h" + +CMMChunk::CMMChunk() { +} + +CMMChunk& CMMChunk::operator=(const CMMChunk&) { +} + +CMMIdChunk& CMMIdChunk::operator=(const CMMIdChunk&) { +} + +CMMIdChunk::CMMIdChunk(char, char, char, char) { +} + +CMMIdChunk::CMMIdChunk(const char*, unsigned int) { +} + +CMMTypeChunk& CMMTypeChunk::operator=(const CMMTypeChunk&) { +} + +CMMTypeChunk::CMMTypeChunk(char, char, char, char) { +} + +CMMTypeChunk::CMMTypeChunk(const char*, unsigned int) { +} + +CMMIOInfo& CMMIOInfo::operator=(const CMMIOInfo&) { +} + +CMMIOInfo::CMMIOInfo() { +} + +CMMMemoryIOInfo& CMMMemoryIOInfo::operator=(const CMMMemoryIOInfo&) { +} + +CMMMemoryIOInfo::CMMMemoryIOInfo(long, unsigned long) { +} + +CMMMemoryIOInfo::CMMMemoryIOInfo(char*, long, unsigned long) { +} + +/*virtual*/ CMMIO::~CMMIO() { +} + +CMMIO::CMMIO() { +} + +CMMIO::CMMIO(HMMIO) { +} + +CMMIO::CMMIO(const char*, unsigned long) { +} + +CMMIO::CMMIO(CMMMemoryIOInfo&) { +} + +unsigned int CMMIO::Close(unsigned int) { +} + +long CMMIO::Read(char*, long) { +} + +unsigned int CMMIO::Ascend(CMMChunk&, unsigned int) { +} + +unsigned int CMMIO::Descend(CMMChunk&, unsigned int) { +} + +unsigned int CMMIO::Descend(CMMChunk&, CMMChunk&, unsigned int) { +} + +long CMMIO::Seek(long, int) { +} + +long CMMIO::SendMessageA(unsigned int, long, long) { +} + +unsigned int CMMIO::SetBuffer(char*, long, unsigned int) { +} + +long CMMIO::Write(const char*, long) { +} + +unsigned int CMMIO::GetInfo(CMMIOInfo&, unsigned int) { +} + +unsigned int CMMIO::SetInfo(CMMIOInfo&, unsigned int) { +} + +unsigned int CMMIO::Advance(CMMIOInfo&, unsigned int) { +} + +void CMMIO::Open(const char*, unsigned long) { +} + +void CMMIO::Open(CMMMemoryIOInfo&) { +} diff --git a/src/T2DLL/T2AdvertisePlugin.cpp b/src/T2DLL/T2AdvertisePlugin.cpp new file mode 100644 index 0000000..8486955 --- /dev/null +++ b/src/T2DLL/T2AdvertisePlugin.cpp @@ -0,0 +1,65 @@ +#include "CResFile.h" +#include "T2AdvertisePlugin.h" +#include "T2BitImage.h" +#include "T2ImageObj.h" + +T2AdvertisePlugin::T2AdvertisePlugin(DWORD type, T2PluginSpecifier& specifier) +	: T2SubPlugin(type, specifier) +{ +	mPath = ""; +	mCC = 0; +	mD0 = 0; +	mDay = 0; +	mMoney = 0; +	mSubType = 0; +	mTieup = NULL; +} + +/*virtual*/ T2AdvertisePlugin::~T2AdvertisePlugin() { +} + +/*virtual*/ void T2AdvertisePlugin::LoadRsrcFromStream(CResFile& resFile) { +	T2SubPlugin::LoadRsrcFromStream(resFile); +	resFile >> mSubType; +	resFile >> mCC; +	resFile >> mD0; +	resFile >> mDay; +	resFile >> mMoney; +	resFile >> mPath; +} + +void T2AdvertisePlugin::UnfoldPluginSelf() { +	if (mCC != 0) { +		mBitImage = new T2BitImage(mSpecifier.mPath, mCC, 1); +		mImageObj = new T2ImageObj; +		mImageObj->AddObject("BILL", -1, *mBitImage, NULL, 0, 0); +	} +} + +unsigned int T2AdvertisePlugin::GetSubType() { +	return mSubType; +} + +unsigned int T2AdvertisePlugin::GetDay() { +	return mDay; +} + +int T2AdvertisePlugin::GetMoney() { +	return mMoney; +} + +void T2AdvertisePlugin::GetPath(CString& outStr) { +	outStr = mPath; +} + +/*virtual*/ unsigned long T2AdvertisePlugin::LoadSelf() { +	unsigned long result = 0; + +	CResFile resFile; +	if (resFile.OpenResource(mSpecifier.mPath, 128, 'ADDF')) +		LoadRsrcFromStream(resFile); +	else +		result = 0xFFFFFFFF; + +	return result; +} diff --git a/src/T2DLL/T2AdvertisePlugin.h b/src/T2DLL/T2AdvertisePlugin.h new file mode 100644 index 0000000..289e3f8 --- /dev/null +++ b/src/T2DLL/T2AdvertisePlugin.h @@ -0,0 +1,27 @@ +#pragma once +#include "common.h" +#include "T2SubPlugin.h" + +class DLL_EXPORT T2AdvertisePlugin : public T2SubPlugin { +public: +	T2AdvertisePlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~T2AdvertisePlugin(); +	void UnfoldPluginSelf(); +	unsigned int GetSubType(); +	unsigned int GetDay(); +	int GetMoney(); +	void GetPath(CString& outStr); +	virtual unsigned long LoadSelf(); + +	unsigned int GetRsrcType() { return 'AdPl'; } + +protected: +	virtual void LoadRsrcFromStream(CResFile& resFile); + +	DWORD mSubType; +	unsigned short mCC; +	unsigned int mD0; +	unsigned int mDay; +	int mMoney; +	CString mPath; +}; diff --git a/src/T2DLL/T2AdvertiseTable.cpp b/src/T2DLL/T2AdvertiseTable.cpp new file mode 100644 index 0000000..5362e34 --- /dev/null +++ b/src/T2DLL/T2AdvertiseTable.cpp @@ -0,0 +1,34 @@ +#include "T2AdvertiseTable.h" + +/*virtual*/ int T2AdvertiseTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +T2AdvertiseTable::T2AdvertiseTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +void T2AdvertiseTable::Add(T2AdvertisePlugin*, int) { +} + +void T2AdvertiseTable::Add(CFilePluginList*) { +} + +/*virtual*/ void T2AdvertiseTable::DrawCell(CDC*, const TableCellT&) { +} + +void T2AdvertiseTable::ClickCell(const TableCellT&, const CPoint&) { +} + +int T2AdvertiseTable::IsMark(unsigned int) { +} + +void T2AdvertiseTable::SetMark(unsigned int, int) { +} + +/*virtual*/ void T2AdvertiseTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ int T2AdvertiseTable::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2AdvertiseTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} diff --git a/src/T2DLL/T2AdvertiseTable.h b/src/T2DLL/T2AdvertiseTable.h new file mode 100644 index 0000000..4895db0 --- /dev/null +++ b/src/T2DLL/T2AdvertiseTable.h @@ -0,0 +1,27 @@ +#pragma once +#include "common.h" + +class T2AdvertiseTable { +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	T2AdvertiseTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	void Add(T2AdvertisePlugin*, int); +	void Add(CFilePluginList*); +protected: +	virtual void DrawCell(CDC*, const TableCellT&); +	void ClickCell(const TableCellT&, const CPoint&); +public: +	int IsMark(unsigned int); +	void SetMark(unsigned int, int); +protected: +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); + +public: +	virtual ~T2AdvertiseTable() {} +protected: +	int GetUserCon() {} +	void SetUserCon(int) {} +}; diff --git a/src/T2DLL/T2Animation.cpp b/src/T2DLL/T2Animation.cpp new file mode 100644 index 0000000..5b4aea4 --- /dev/null +++ b/src/T2DLL/T2Animation.cpp @@ -0,0 +1,34 @@ +#include "T2Animation.h" + +void T2Animation::Rewind() { +} + +int T2Animation::HasNextStep() const { +} + +int T2Animation::SetFrame(int) { +} + +int T2Animation::GetFrame() const { +} + +T2Animation::T2Animation(T2TowerDoc*, short, short, const SpriteDef*, const AnimationDef*, T2Sprite::ELayer) { +} + +T2Animation::~T2Animation() { +} + +int T2Animation::Start(POINT, int) { +} + +int T2Animation::Idle() { +} + +void T2Animation::Play(POINT, int) { +} + +int T2Animation::Step() { +} + +void T2Animation::Draw() { +} diff --git a/src/T2DLL/T2Animation.h b/src/T2DLL/T2Animation.h new file mode 100644 index 0000000..410a449 --- /dev/null +++ b/src/T2DLL/T2Animation.h @@ -0,0 +1,18 @@ +#pragma once +#include "common.h" + +class T2Animation { +public: +	void Rewind(); +	int HasNextStep() const; +	int SetFrame(int); +	int GetFrame() const; +	T2Animation(T2TowerDoc*, short, short, const SpriteDef*, const AnimationDef*, T2Sprite::ELayer); +	~T2Animation(); +	int Start(POINT, int); +	int Idle(); +	void Play(POINT, int); +	int Step(); +protected: +	void Draw(); +}; diff --git a/src/T2DLL/T2Archive.cpp b/src/T2DLL/T2Archive.cpp new file mode 100644 index 0000000..8aac959 --- /dev/null +++ b/src/T2DLL/T2Archive.cpp @@ -0,0 +1,394 @@ +#include "T2Archive.h" + +T2Archive::T2Archive() { +	mFile = NULL; +	m8 = 0; +	mIsReadable = false; +	mIsWritable = false; +	mBuffer = NULL; +	mBufferLen = 0; + +	mBuffer = (char *) malloc(0x10000); +	mPtr = mBuffer; +} + +/*virtual*/ T2Archive::~T2Archive() { +	if (mFile) +		Close(); +	if (mBuffer) +		free(mBuffer); +} + +/*virtual*/ BOOL T2Archive::OpenAsReadMode(const char* path) { +	if (mFile) +		Close(); + +	mFile = new CFile; +	CFileException exc; + +	BOOL success = mFile->Open(path, CFile::shareDenyWrite, &exc); +	if (!success) { +		delete mFile; +		mFile = NULL; +	} else { +		mIsReadable = true; +		mIsWritable = false; +		mPtr = mBuffer; +	} + +	return success; +} + +/*virtual*/ BOOL T2Archive::OpenAsWriteMode(const char* path) { +	if (mFile) +		Close(); + +	mFile = new CFile; + +	BOOL success = mFile->Open(path, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyRead); +	if (!success) { +		delete mFile; +		mFile = NULL; +	} else { +		mIsReadable = false; +		mIsWritable = true; +	} + +	return success; +} + +/*virtual*/ BOOL T2Archive::Close() { +#line 93 +	_ASSERT(mFile); + +	if (mBuffer && mBufferLen > 0 && mIsWritable) { +		mFile->Write(mBuffer, mBufferLen); +		mBufferLen = 0; +	} + +	mFile->Close(); +	delete mFile; + +	mFile = NULL; +	mIsReadable = false; +	mIsWritable = false; + +	return true; +} + +/*virtual*/ int T2Archive::Read(void* buffer, int size) { +#line 111 +	_ASSERT(mIsReadable); +	_ASSERT(size <= 0x10000); + +	int readAmount; +	if (mBuffer) { +		if (mBufferLen < size) { +			memmove(mBuffer, mPtr, mBufferLen); +			mPtr = mBuffer; +			mBufferLen += mFile->Read(mBuffer + mBufferLen, 0x10000 - mBufferLen); +#line 122 +			_ASSERT(mBufferLen >= size); +		} + +		memcpy(buffer, mPtr, size); +		mPtr += size; +		mBufferLen -= size; +		readAmount = size; +	} else { +		readAmount = mFile->Read(buffer, size); +#line 132 +		_ASSERT(readAmount == size); +	} + +	return readAmount; +} + +/*virtual*/ int T2Archive::Write(const void* buffer, int size) { +#line 139 +	_ASSERT(mIsWritable); +	_ASSERT(size <= 0x10000); + +	if (mBuffer) { +		if (mBufferLen + size > 0x10000) { +			mFile->Write(mBuffer, mBufferLen); +			mBufferLen = 0; +		} +		memcpy(mBuffer + mBufferLen, buffer, size); +		mBufferLen += size; +	} else { +		mFile->Write(buffer, size); +	} + +	return size; +} + +/*virtual*/ void T2Archive::BeginCompressedStream() { +} + +/*virtual*/ void T2Archive::EndCompressedStream() { +} + +BOOL T2Archive::operator>>(unsigned char& v) { +	if (Read(&v, 1) != 1) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(unsigned char v) { +	if (Write(&v, 1) != 1) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(char& v) { +	if (Read(&v, 1) != 1) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(char v) { +	if (Write(&v, 1) != 1) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(int& v) { +	if (Read(&v, 4) != 4) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(int v) { +	if (Write(&v, 4) != 4) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(short& v) { +	if (Read(&v, 2) != 2) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(short v) { +	if (Write(&v, 2) != 2) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(unsigned int& v) { +	if (Read(&v, 4) != 4) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(unsigned int v) { +	if (Write(&v, 4) != 4) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(unsigned long& v) { +	if (Read(&v, 4) != 4) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(unsigned long v) { +	if (Write(&v, 4) != 4) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(unsigned short& v) { +	if (Read(&v, 2) != 2) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(unsigned short v) { +	if (Write(&v, 2) != 2) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(POINT& v) { +	if (Read(&v, sizeof(v)) != sizeof(v)) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(POINT v) { +	if (Write(&v, sizeof(v)) != sizeof(v)) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(RECT& v) { +	if (Read(&v, sizeof(v)) != sizeof(v)) +		return false; +	return true; +} + +BOOL T2Archive::operator<<(RECT v) { +	if (Write(&v, sizeof(v)) != sizeof(v)) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(CString& v) { +	int maxSize = 16; +	char buf[17]; + +	v = ""; + +	int sz = Read(buf, maxSize); +	while (strlen(buf) == sz) { +		buf[sz] = 0; +		v += buf; +		if (sz < maxSize) +			return false; +		sz = Read(buf, maxSize); +	} + +	int len = strlen(buf); +	mFile->Seek(len - sz + 1, CFile::current); +	v += buf; + +	return true; +} + +BOOL T2Archive::operator<<(CString& v) { +	int len = v.GetLength() + 1; +	if (Write(v, len) != len) +		return false; +	return true; +} + +BOOL T2Archive::operator>>(char* v) { +	int maxSize = 16; +	char buf[17]; + +	v = ""; // BUG!! + +	int sz = Read(buf, maxSize); +	while (strlen(buf) == sz) { +		buf[sz] = 0; +		strcat(v, buf); +		if (sz < maxSize) +			return false; +		sz = Read(buf, maxSize); +	} + +	int len = strlen(buf); +	mFile->Seek(len - sz + 1, CFile::current); +	strcat(v, buf); + +	return true; +} + +BOOL T2Archive::operator<<(const char* v) { +	int len = strlen(v) + 1; +	if (Write(v, len) != len) +		return false; +	return true; +} + +BOOL T2Archive::ReadPStr(char* v) { +	unsigned char len; +	Read(&len, 1); +	memset(v, 0, len + 1); +	Read(v, len); +	return true; +} + +BOOL T2Archive::ReadPStr(CString& v) { +	unsigned char len; +	Read(&len, 1); + +	char *buf = (char *) malloc(len + 1); +	memset(buf, 0, len + 1); +	Read(buf, len); +	v = buf; +	free(buf); + +	return true; +} + +BOOL T2Archive::WritePStr(const char* v) { +	int len = strlen(v) + 1; +	if (len > 255) +		return false; + +	unsigned char len8 = len; +	Write(&len8, 1); +	Write(v, strlen(v) + 1); + +	return true; +} + +/*virtual*/ BOOL T2Archive::Skip(unsigned long v) { +	int size; +	BOOL result = true; + +	if (v > 1000) +		size = 1000; +	else +		size = v; + +	void *buf = malloc(size); + +	while (v > 0) { +		int howMuch = Read(buf, size); +		v -= howMuch; +		if (howMuch < size && v > 0) { +			result = false; +			break; +		} +	} + +	free(buf); + +	return result; +} + +static short swap16(short v); + +BOOL T2Archive::ReadSRect(RECT& v) { +	struct { +		short top, left, bottom, right; +	} r; +	Read(&r, sizeof(r)); +	v.top = swap16(r.top); +	v.left = swap16(r.left); +	v.bottom = swap16(r.bottom); +	v.right = swap16(r.right); +	return true; +} + +static short swap16(short v) { +	union { +		unsigned char b[2]; +		short s; +	} work; +	unsigned char tmp; + +	work.s = v; +	tmp = work.b[0]; +	work.b[0] = work.b[1]; +	work.b[1] = tmp; +	return work.s; +} + +BOOL T2Archive::WriteSRect(const RECT& v) { +	struct { +		short top, left, bottom, right; +	} r; +	r.top = swap16(v.top); +	r.left = swap16(v.left); +	r.bottom = swap16(v.bottom); +	r.right = swap16(v.right); +	Write(&r, sizeof(r)); +	return true; +} diff --git a/src/T2DLL/T2Archive.h b/src/T2DLL/T2Archive.h new file mode 100644 index 0000000..f24a386 --- /dev/null +++ b/src/T2DLL/T2Archive.h @@ -0,0 +1,52 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2Archive { +public: +	T2Archive(); +	virtual ~T2Archive(); +	virtual BOOL OpenAsReadMode(const char* path); +	virtual BOOL OpenAsWriteMode(const char* path); +	virtual BOOL Close(); +	virtual void BeginCompressedStream(); +	virtual void EndCompressedStream(); +	virtual BOOL Skip(unsigned long); +	virtual int Read(void* buffer, int size); +	virtual int Write(const void* buffer, int size); +	BOOL operator>>(unsigned char& v); +	BOOL operator<<(unsigned char v); +	BOOL operator>>(char& v); +	BOOL operator<<(char v); +	BOOL operator>>(int& v); +	BOOL operator<<(int v); +	BOOL operator>>(short& v); +	BOOL operator<<(short v); +	BOOL operator>>(unsigned int& v); +	BOOL operator<<(unsigned int v); +	BOOL operator>>(unsigned long& v); +	BOOL operator<<(unsigned long v); +	BOOL operator>>(unsigned short& v); +	BOOL operator<<(unsigned short v); +	BOOL operator>>(POINT& v); +	BOOL operator<<(POINT v); +	BOOL operator>>(RECT& v); +	BOOL operator<<(RECT v); +	BOOL operator>>(CString& v); +	BOOL operator<<(CString& v); +	BOOL operator>>(char* v); +	BOOL operator<<(const char* v); +	BOOL ReadPStr(char* v); +	BOOL ReadPStr(CString& v); +	BOOL WritePStr(const char* v); +	BOOL ReadSRect(RECT& v); +	BOOL WriteSRect(const RECT& v); + +private: +	CFile *mFile; +	int m8; +	BOOL mIsReadable; +	BOOL mIsWritable; +	char *mBuffer; +	int mBufferLen; +	char *mPtr; +}; diff --git a/src/T2DLL/T2ArrowWnd.cpp b/src/T2DLL/T2ArrowWnd.cpp new file mode 100644 index 0000000..495f0b9 --- /dev/null +++ b/src/T2DLL/T2ArrowWnd.cpp @@ -0,0 +1,43 @@ +#include "T2ArrowWnd.h" + +/*static*/ CObject* __stdcall T2ArrowWnd::CreateObject() { +} + +/*static*/ CRuntimeClass* __stdcall T2ArrowWnd::_GetBaseClass() { +} + +/*virtual*/ CRuntimeClass* T2ArrowWnd::GetRuntimeClass() const { +} + +T2ArrowWnd::T2ArrowWnd() { +} + +/*virtual*/ T2ArrowWnd::~T2ArrowWnd() { +} + +void T2ArrowWnd::Show(int, int, T2TowerDoc*) { +} + +/*static*/ const AFX_MSGMAP* __stdcall T2ArrowWnd::_GetBaseMessageMap() { +} + +/*virtual*/ const AFX_MSGMAP* T2ArrowWnd::GetMessageMap() const { +} + +int T2ArrowWnd::OnEraseBkgnd(CDC*) { +} + +void T2ArrowWnd::OnTimer(unsigned int) { +} + +void T2ArrowWnd::OnDestroy() { +} + +/*static*/ const CRuntimeClass T2ArrowWnd::classT2ArrowWnd { +} + +/*static*/ const AFX_MSGMAP T2ArrowWnd::messageMap { +} + +/*static*/ const AFX_MSGMAP_ENTRY* const T2ArrowWnd::_messageEntries { +} diff --git a/src/T2DLL/T2ArrowWnd.h b/src/T2DLL/T2ArrowWnd.h new file mode 100644 index 0000000..23c08d7 --- /dev/null +++ b/src/T2DLL/T2ArrowWnd.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" + +class T2ArrowWnd { +public: +	static CObject* __stdcall CreateObject(); +protected: +	static CRuntimeClass* __stdcall _GetBaseClass(); +public: +	virtual CRuntimeClass* GetRuntimeClass() const; +	T2ArrowWnd(); +	virtual ~T2ArrowWnd(); +	void Show(int, int, T2TowerDoc*); +protected: +	static const AFX_MSGMAP* __stdcall _GetBaseMessageMap(); +	virtual const AFX_MSGMAP* GetMessageMap() const; +	int OnEraseBkgnd(CDC*); +	void OnTimer(unsigned int); +	void OnDestroy(); +public: +	static const CRuntimeClass classT2ArrowWnd; +protected: +	static const AFX_MSGMAP messageMap; +private: +	static const AFX_MSGMAP_ENTRY* const _messageEntries; +}; diff --git a/src/T2DLL/T2Balloon.cpp b/src/T2DLL/T2Balloon.cpp new file mode 100644 index 0000000..100918f --- /dev/null +++ b/src/T2DLL/T2Balloon.cpp @@ -0,0 +1,10 @@ +#include "T2Balloon.h" + +T2Balloon::T2Balloon() { +} + +/*virtual*/ T2Balloon::~T2Balloon() { +} + +void T2Balloon::Show(int, int, const CString&, int) { +} diff --git a/src/T2DLL/T2Balloon.h b/src/T2DLL/T2Balloon.h new file mode 100644 index 0000000..e7c0bc1 --- /dev/null +++ b/src/T2DLL/T2Balloon.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2Balloon { +public: +	T2Balloon(); +	virtual ~T2Balloon(); +	void Show(int, int, const CString&, int); + +	T2Balloon(const T2Balloon&) {} +	T2Balloon& operator=(const T2Balloon&) {} +}; diff --git a/src/T2DLL/T2BalloonWnd.cpp b/src/T2DLL/T2BalloonWnd.cpp new file mode 100644 index 0000000..a17dc4f --- /dev/null +++ b/src/T2DLL/T2BalloonWnd.cpp @@ -0,0 +1,52 @@ +#include "T2BalloonWnd.h" + +/*static*/ CObject* __stdcall T2BalloonWnd::CreateObject() { +} + +/*static*/ CRuntimeClass* __stdcall T2BalloonWnd::_GetBaseClass() { +} + +/*virtual*/ CRuntimeClass* T2BalloonWnd::GetRuntimeClass() const { +} + +T2BalloonWnd::T2BalloonWnd() { +} + +/*virtual*/ T2BalloonWnd::~T2BalloonWnd() { +} + +/*static*/ const AFX_MSGMAP* __stdcall T2BalloonWnd::_GetBaseMessageMap() { +} + +/*virtual*/ const AFX_MSGMAP* T2BalloonWnd::GetMessageMap() const { +} + +void T2BalloonWnd::Show(int, int, const CString&, int) { +} + +int T2BalloonWnd::OnEraseBkgnd(CDC*) { +} + +void T2BalloonWnd::OnLButtonDown(unsigned int, CPoint) { +} + +void T2BalloonWnd::OnRButtonDown(unsigned int, CPoint) { +} + +void T2BalloonWnd::OnMouseMove(unsigned int, CPoint) { +} + +void T2BalloonWnd::OnTimer(unsigned int) { +} + +void T2BalloonWnd::OnDestroy() { +} + +/*static*/ const CRuntimeClass T2BalloonWnd::classT2BalloonWnd { +} + +/*static*/ const AFX_MSGMAP T2BalloonWnd::messageMap { +} + +/*static*/ const AFX_MSGMAP_ENTRY* const T2BalloonWnd::_messageEntries { +} diff --git a/src/T2DLL/T2BalloonWnd.h b/src/T2DLL/T2BalloonWnd.h new file mode 100644 index 0000000..35cd1a2 --- /dev/null +++ b/src/T2DLL/T2BalloonWnd.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" + +class T2BalloonWnd { +public: +	static CObject* __stdcall CreateObject(); +protected: +	static CRuntimeClass* __stdcall _GetBaseClass(); +public: +	virtual CRuntimeClass* GetRuntimeClass() const; +	T2BalloonWnd(); +	virtual ~T2BalloonWnd(); +protected: +	static const AFX_MSGMAP* __stdcall _GetBaseMessageMap(); +	virtual const AFX_MSGMAP* GetMessageMap() const; +public: +	void Show(int, int, const CString&, int); +protected: +	int OnEraseBkgnd(CDC*); +	void OnLButtonDown(unsigned int, CPoint); +	void OnRButtonDown(unsigned int, CPoint); +	void OnMouseMove(unsigned int, CPoint); +	void OnTimer(unsigned int); +	void OnDestroy(); +public: +	static const CRuntimeClass classT2BalloonWnd; +protected: +	static const AFX_MSGMAP messageMap; +private: +	static const AFX_MSGMAP_ENTRY* const _messageEntries; +}; diff --git a/src/T2DLL/T2BitImage.cpp b/src/T2DLL/T2BitImage.cpp new file mode 100644 index 0000000..ea00253 --- /dev/null +++ b/src/T2DLL/T2BitImage.cpp @@ -0,0 +1,1228 @@ +#include "GlobalFunc.h" +#include "T2BitImage.h" + +#define ALIGN_ROW_SIZE(s) ((((s) + 3) / 4) * 4) + +T2BitImage::T2BitImage(const char* path, unsigned int id, BOOL flip) { +	mMemHandle = NULL; + +	SUBPLUGINFSENTRY fsEntry; +	CFile *file = OpenSubPluginFS(path, id, 0, &fsEntry); +	if (!file) { +		CString idStr; +		idStr.Format("%d", id); + +		CString err = "T2BitImage::T2BitImage ERROR : " + idStr + " @" + path + "\n"; +		OutputDebugString(err); +		throw 0; +	} + +	void *data = malloc(fsEntry.spfse_mC); +	file->Read(data, fsEntry.spfse_mC); +	SetupBitmap((BITMAPINFO *) data, flip); +	free(data); + +	file->Close(); +	delete file; +} + +T2BitImage::T2BitImage(HINSTANCE instance, unsigned int id, BOOL flip) { +	mMemHandle = NULL; + +	HRSRC rsrc = FindResource(instance, MAKEINTRESOURCE(id), MAKEINTRESOURCE(2)); +	if (!rsrc) { +		CString idStr; +		idStr.Format("%d", id); + +		CString err = "T2BitImage::T2BitImage ERROR : " + idStr + " @" + GetModuleName(instance) + "\n"; +		OutputDebugString(err); +		throw 0; +	} + +	HGLOBAL h = LoadResource(instance, rsrc); +	void *data = LockResource(h); +	SetupBitmap((BITMAPINFO *) data, flip); +	UnlockResource(h); +	FreeResource(rsrc); +} + +void T2BitImage::SetupBitmap(BITMAPINFO* info, BOOL flip) { +	mBitmap.header = info->bmiHeader; + +	int colorCount = 256; +	if (mBitmap.header.biClrUsed != 0) +		colorCount = mBitmap.header.biClrUsed; + +	int dataSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth) * mBitmap.header.biHeight; +	mMemHandle = GlobalAlloc(GHND, dataSize); +	mData = (unsigned char *) GlobalLock(mMemHandle); + +	for (int i = 0; i < colorCount; i++) +		mBitmap.palette[i] = i; + +	memcpy(mData, info->bmiColors + colorCount, dataSize); + +	if (flip) { +		int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +		void *tmp = malloc(rowSize); +		for (int y = 0; y < mBitmap.header.biHeight / 2; y++) { +			int otherY = mBitmap.header.biHeight - y - 1; +			memcpy(tmp, mData + y * rowSize, rowSize); +			memcpy(mData + y * rowSize, mData + otherY * rowSize, rowSize); +			memcpy(mData + otherY * rowSize, tmp, rowSize); +		} +		free(tmp); +	} + +	mBackGndColor = -1; +	mForeGndColor = -1; +	mOrigin.x = 0; +	mOrigin.y = 0; +	mHalftoneMode = false; +	SetClipRect(NULL); +} + +T2BitImage::T2BitImage(const RECT& rect) { +	int w = rect.right - rect.left; +	int h = rect.bottom - rect.top; + +	memset(&mBitmap.header, 0, sizeof(mBitmap.header)); +	mBitmap.header.biSize = sizeof(mBitmap.header); +	mBitmap.header.biWidth = w; +	mBitmap.header.biHeight = h; +	mBitmap.header.biPlanes = 1; +	mBitmap.header.biBitCount = 8; +	mBitmap.header.biSizeImage = ALIGN_ROW_SIZE(w) * h; +	mBitmap.header.biClrUsed = 256; + +	for (int i = 0; i < 256; i++) +		mBitmap.palette[i] = i; + +	mMemHandle = GlobalAlloc(GHND, mBitmap.header.biSizeImage); +	mData = (unsigned char *) GlobalLock(mMemHandle); + +	mBackGndColor = -1; +	mForeGndColor = -1; +	mOrigin.x = 0; +	mOrigin.y = 0; +	mHalftoneMode = false; +	SetClipRect(NULL); +} + +/*virtual*/ T2BitImage::~T2BitImage() { +	if (mMemHandle) { +		GlobalUnlock(mMemHandle); +		GlobalFree(mMemHandle); +	} +} + +BOOL T2BitImage::BeginDrawing() { +	return true; +} + +void T2BitImage::EndDrawing() { +} + +void T2BitImage::CopyImage(T2BitImage& destImg, const RECT& inSrc, const RECT& inDest, int, CRgn* rgn) { +	RECT src; +	src.top = inSrc.top; +	src.left = inSrc.left; +	src.bottom = inSrc.bottom; +	src.right = inSrc.right; +	OffsetRect(&src, -mOrigin.x, -mOrigin.y); + +	RECT dest; +	dest.top = inDest.top; +	dest.left = inDest.left; +	dest.bottom = inDest.bottom; +	dest.right = inDest.right; +	OffsetRect(&dest, -destImg.mOrigin.x, -destImg.mOrigin.y); + +	RECT clipSrc = mClipRect; +	OffsetRect(&clipSrc, -mOrigin.x, -mOrigin.y); + +	RECT clipDest = destImg.mClipRect; +	OffsetRect(&clipDest, -destImg.mOrigin.x, -destImg.mOrigin.y); + +	int align; + +	if ((dest.bottom - dest.top) == ((src.bottom - src.top) * 4)) { +		align = 1; // Y scale /4 +	} else if ((dest.bottom - dest.top) == ((src.bottom - src.top) * 2)) { +		align = 2; // Y scale /2 +	} else if ((dest.bottom - dest.top) == (src.bottom - src.top)) { +		align = 4; // No scaling +	} else if (((dest.bottom - dest.top) * 2) == (src.bottom - src.top)) { +		align = 8; // Y scale *2 +	} else if (((dest.bottom - dest.top) * 4) == (src.bottom - src.top)) { +		align = 16; // Y scale *4 +	} else { +		CString err; +		err.Format("•s³‚ÈŠg‘åk¬—¦\nSrc(%d,%d),Dest(%d,%d)", dest.top, dest.bottom, src.top, src.bottom); +#line 183 +		__Rep0(__FILE__, __LINE__, err); +	} + +	if ( +		((src.right - src.left) != (((dest.right - dest.left) * align) / 4)) || +		((src.bottom - src.top) != (((dest.bottom - dest.top) * align) / 4)) +	) { +		CString err; +		err.Format("•s³‚ÈŠg‘åk¬—¦\nSrc(%d,%d),Dest(%d,%d)", dest.top, dest.bottom, src.top, src.bottom); +#line 190 +		__Rep0(__FILE__, __LINE__, err); +	} + +	RECT rect2; + +	int srcX = src.left; +	int srcY = src.top; +	rect2.top = 0; +	rect2.left = 0; +	rect2.bottom = mBitmap.header.biHeight; +	rect2.right = mBitmap.header.biWidth; + +	if (!IntersectRect(&src, &rect2, &src)) +		return; +	if (mHasClipRect && !IntersectRect(&src, &clipSrc, &src)) +		return; + +	int destX = dest.left; +	int destY = dest.top; +	rect2.top = 0; +	rect2.left = 0; +	rect2.bottom = destImg.mBitmap.header.biHeight; +	rect2.right = destImg.mBitmap.header.biWidth; + +	if (!IntersectRect(&dest, &rect2, &dest)) +		return; +	if (destImg.mHasClipRect && !IntersectRect(&dest, &clipDest, &dest)) +		return; + +	OffsetRect(&src, -srcX, -srcY); +	OffsetRect(&dest, -destX, -destY); + +	dest.right = (dest.right * align) / 4; +	dest.bottom = (dest.bottom * align) / 4; +	dest.left = (dest.left * align) / 4; +	dest.top = (dest.top * align) / 4; + +	if (!IntersectRect(&dest, &src, &dest)) +		return; + +	src = dest; + +	dest.right = (dest.right * 4) / align; +	dest.bottom = (dest.bottom * 4) / align; +	dest.left = (dest.left * 4) / align; +	dest.top = (dest.top * 4) / align; + +	OffsetRect(&src, srcX, srcY); +	OffsetRect(&dest, destX, destY); + +	int width = dest.right - dest.left; +	int height = dest.bottom - dest.top; + +	int destRowSize = ALIGN_ROW_SIZE(destImg.mBitmap.header.biWidth); +	int srcRowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); + +	unsigned char *destP = destImg.mData + dest.top * destRowSize + dest.left; +	unsigned char *srcP = mData + src.top * srcRowSize + src.left; + +	int foreGndColor = mForeGndColor; +	int backGndColor = mBackGndColor; +	BOOL halftoneMode = mHalftoneMode; + +	int xAdjust = 0; +	if (dest.left < 0) { +		xAdjust = -dest.left; +		destP += xAdjust; +		width -= xAdjust; +	} + +	int yAdjust = 0; +	if (dest.top < 0) { +		yAdjust = -dest.top; +		destP += destRowSize * yAdjust; +		height -= yAdjust; +	} + +#define INC_SRC_ROW \ +	__asm mov eax, srcP \ +	__asm add eax, srcRowSize \ +	__asm mov srcP, eax + +#define INC_SRC_ROW_2 \ +	__asm mov eax, srcP \ +	__asm add eax, srcRowSize \ +	__asm add eax, srcRowSize \ +	__asm mov srcP, eax + +#define INC_SRC_ROW_4 \ +	__asm mov eax, srcP \ +	__asm mov ebx, srcRowSize \ +	__asm add eax, ebx \ +	__asm add eax, ebx \ +	__asm add eax, ebx \ +	__asm add eax, ebx \ +	__asm mov srcP, eax + +#define INC_DEST_ROW \ +	__asm mov eax, destP \ +	__asm add eax, destRowSize \ +	__asm mov destP, eax + +	if (!halftoneMode && foreGndColor == -1 && backGndColor == -1) { +		// Simple drawing +		if (align == 2) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			simple2_rowLoop: +				or ecx, ecx +				jle simple2_end +				mov esi, srcP +				mov edi, destP +				mov edx, width +				mov eax, xAdjust +				or eax, eax +				jnz simple2_midXAdjust +			simple2_loopXAdjust: +				or edx, edx +				jle simple2_afterXAdjust +				mov al, [esi] +				mov [edi], al +				inc edi +				dec edx +				or edx, edx +				jle simple2_afterXAdjust +			simple2_midXAdjust: +				mov al, [esi] +				mov [edi], al +				inc esi +				inc edi +				dec edx +				jmp simple2_loopXAdjust +			simple2_afterXAdjust: +				mov eax, yAdjust +				inc eax +				mov yAdjust, eax +				and eax, 1 +				jnz simple2_skipRowInc +				INC_SRC_ROW +			simple2_skipRowInc: +				INC_DEST_ROW +				dec ecx +				jmp simple2_rowLoop +			simple2_end: +			} +#endif +		} else if (align == 4) { +			// No Y scaling at all +			if ((width % 8) == 0) { +#ifdef _MSC_VER +				__asm { +					mov ecx, height +				simple4a_outerLoop: +					or ecx, ecx +					jle simple4a_end +					mov esi, srcP +					mov edi, destP +					mov edx, width +					shr edx, 3 +				simple4a_innerLoop: +					or edx, edx +					jle simple4a_rowDone +					; copy an 8-byte chunk +					mov eax, [esi] +					mov [edi], eax +					mov eax, [esi+4] +					mov [edi+4], eax +					add esi, 8 +					add edi, 8 +					dec edx +					jmp simple4a_innerLoop +				simple4a_rowDone: +					INC_SRC_ROW +					INC_DEST_ROW +					dec ecx +					jmp simple4a_outerLoop +				simple4a_end: +				} +#endif +			} else { +#ifdef _MSC_VER +				__asm { +					mov ecx, height +				simple4b_outerLoop: +					or ecx, ecx +					jle simple4b_end +					mov esi, srcP +					mov edi, destP +					mov edx, width +				simple4b_innerLoop: +					or edx, edx +					jle simple4b_rowDone +					cmp edx, 4 +					jc simple4b_byteCopy +					mov eax, [esi] +					mov [edi], eax +					add esi, 4 +					add edi, 4 +					sub edx, 4 +					jmp simple4b_innerLoop +				simple4b_byteCopy: +					mov al, [esi] +					mov [edi], al +					inc esi +					inc edi +					dec edx +					jmp simple4b_innerLoop +				simple4b_rowDone: +					INC_SRC_ROW +					INC_DEST_ROW +					dec ecx +					jmp simple4b_outerLoop +				simple4b_end: +				} +#endif +			} +		} else if (align == 8) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			simple8_outerLoop: +				or ecx, ecx +				jle simple8_end +				mov esi, srcP +				mov edi, destP +				mov edx, width +			simple8_innerLoop: +				or edx, edx +				jle simple8_rowDone +				mov al, [esi] +				mov [edi], al +				add esi, 4 +				inc edi +				dec edx +				jmp simple8_innerLoop +			simple8_rowDone: +				INC_SRC_ROW_2 +				INC_DEST_ROW +				dec ecx +				jmp simple8_outerLoop +			simple8_end: +			} +#endif +		} else if (align == 16) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			simple16_outerLoop: +				or ecx, ecx +				jle simple16_end +				mov esi, srcP +				mov edi, destP +				mov edx, width +			simple16_innerLoop: +				or edx, edx +				jle simple16_rowDone +				mov al, [esi] +				mov [edi], al +				add esi, 4 +				inc edi +				dec edx +				jmp simple16_innerLoop +			simple16_rowDone: +				INC_SRC_ROW_4 +				INC_DEST_ROW +				dec ecx +				jmp simple16_outerLoop +			simple16_end: +			} +#endif +		} +		return; +	} + +	if (!halftoneMode && foreGndColor == -1 && backGndColor != -1) { +		// Drawing with a background colour only +		if (align == 4) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			bgc4_outerLoop: +				or ecx, ecx +				jle bgc4_end +				mov esi, srcP +				mov edi, destP +				mov ah, byte ptr [backGndColor] +				mov edx, width +			bgc4_innerLoop: +				or edx, edx +				jle bgc4_rowDone +				mov al, [esi] +				cmp al, ah +				jz bgc4_skipPixel +				mov [edi], al +			bgc4_skipPixel: +				inc esi +				inc edi +				dec edx +				jmp bgc4_innerLoop +			bgc4_rowDone: +				INC_SRC_ROW +				INC_DEST_ROW +				dec ecx +				jmp bgc4_outerLoop +			bgc4_end: +			} +#endif +		} else if (align == 8) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			bgc8_outerLoop: +				or ecx, ecx +				jle bgc8_end +				mov esi, srcP +				mov edi, destP +				mov ah, byte ptr [backGndColor] +				mov edx, width +			bgc8_innerLoop: +				or edx, edx +				jle bgc8_rowDone +				mov al, [esi] +				cmp al, ah +				jz bgc8_skipPixel +				mov [edi], al +			bgc8_skipPixel: +				add esi, 2 +				inc edi +				dec edx +				jmp bgc8_innerLoop +			bgc8_rowDone: +				INC_SRC_ROW_2 +				INC_DEST_ROW +				dec ecx +				jmp bgc8_outerLoop +			bgc8_end: +			} +#endif +		} else if (align == 16) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			bgc16_outerLoop: +				or ecx, ecx +				jle bgc16_end +				mov esi, srcP +				mov edi, destP +				mov ah, byte ptr [backGndColor] +				mov edx, width +			bgc16_innerLoop: +				or edx, edx +				jle bgc16_rowDone +				mov al, [esi] +				cmp al, ah +				jz bgc16_skipPixel +				mov [edi], al +			bgc16_skipPixel: +				add esi, 4 +				inc edi +				dec edx +				jmp bgc16_innerLoop +			bgc16_rowDone: +				INC_SRC_ROW_4 +				INC_DEST_ROW +				dec ecx +				jmp bgc16_outerLoop +			bgc16_end: +			} +#endif +		} +		return; +	} + +	if (halftoneMode && foreGndColor == -1 && backGndColor == -1) { +		// Simple drawing in halftone mode +		if (align == 4) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			ht4_outerLoop: +				or ecx, ecx +				jle ht4_end +				mov esi, srcP +				mov edi, destP +				mov edx, width +				mov ebx, ecx +			ht4_innerLoop: +				or edx, edx +				jle ht4_rowDone +				test ebx, 1 +				jz ht4_skipPixel +				mov al, [esi] +				mov [edi], al +			ht4_skipPixel: +				inc esi +				inc edi +				dec edx +				inc ebx +				jmp ht4_innerLoop +			ht4_rowDone: +				INC_SRC_ROW +				INC_DEST_ROW +				dec ecx +				jmp ht4_outerLoop +			ht4_end: +			} +#endif +		} else if (align == 8) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			ht8_outerLoop: +				or ecx, ecx +				jle ht8_end +				mov esi, srcP +				mov edi, destP +				mov edx, width +				mov ebx, ecx +			ht8_innerLoop: +				or edx, edx +				jle ht8_rowDone +				test ebx, 1 +				jz ht8_skipPixel +				mov al, [esi] +				mov [edi], al +			ht8_skipPixel: +				add esi, 2 +				inc edi +				dec edx +				inc ebx +				jmp ht8_innerLoop +			ht8_rowDone: +				INC_SRC_ROW_2 +				INC_DEST_ROW +				dec ecx +				jmp ht8_outerLoop +			ht8_end: +			} +#endif +		} else if (align == 16) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			ht16_outerLoop: +				or ecx, ecx +				jle ht16_end +				mov esi, srcP +				mov edi, destP +				mov edx, width +				mov ebx, ecx +			ht16_innerLoop: +				or edx, edx +				jle ht16_rowDone +				test ebx, 1 +				jz ht16_skipPixel +				mov al, [esi] +				mov [edi], al +			ht16_skipPixel: +				add esi, 4 +				inc edi +				dec edx +				inc ebx +				jmp ht16_innerLoop +			ht16_rowDone: +				INC_SRC_ROW_4 +				INC_DEST_ROW +				dec ecx +				jmp ht16_outerLoop +			ht16_end: +			} +#endif +		} +		return; +	} + +	if (halftoneMode && foreGndColor == -1 && backGndColor != -1) { +		// Drawing with a background colour in halftone mode +		if (align == 4) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			htBg4_outerLoop: +				or ecx, ecx +				jle htBg4_end +				mov esi, srcP +				mov edi, destP +				mov ah, byte ptr [backGndColor] +				mov edx, width +				mov ebx, ecx +			htBg4_innerLoop: +				or edx, edx +				jle htBg4_rowDone +				test ebx, 1 +				jz htBg4_skipPixel +				mov al, [esi] +				cmp al, ah +				jz htBg4_skipPixel +				mov [edi], al +			htBg4_skipPixel: +				inc esi +				inc edi +				dec edx +				inc ebx +				jmp htBg4_innerLoop +			htBg4_rowDone: +				INC_SRC_ROW +				INC_DEST_ROW +				dec ecx +				jmp htBg4_outerLoop +			htBg4_end: +			} +#endif +		} else if (align == 8) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			htBg8_outerLoop: +				or ecx, ecx +				jle htBg8_end +				mov esi, srcP +				mov edi, destP +				mov ah, byte ptr [backGndColor] +				mov edx, width +				mov ebx, ecx +			htBg8_innerLoop: +				or edx, edx +				jle htBg8_rowDone +				test ebx, 1 +				jz htBg8_skipPixel +				mov al, [esi] +				cmp al, ah +				jz htBg8_skipPixel +				mov [edi], al +			htBg8_skipPixel: +				add esi, 2 +				inc edi +				dec edx +				inc ebx +				jmp htBg8_innerLoop +			htBg8_rowDone: +				INC_SRC_ROW_2 +				INC_DEST_ROW +				dec ecx +				jmp htBg8_outerLoop +			htBg8_end: +			} +#endif +		} else if (align == 16) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			htBg16_outerLoop: +				or ecx, ecx +				jle htBg16_end +				mov esi, srcP +				mov edi, destP +				mov ah, byte ptr [backGndColor] +				mov edx, width +				mov ebx, ecx +			htBg16_innerLoop: +				or edx, edx +				jle htBg16_rowDone +				test ebx, 1 +				jz htBg16_skipPixel +				mov al, [esi] +				cmp al, ah +				jz htBg16_skipPixel +				mov [edi], al +			htBg16_skipPixel: +				add esi, 4 +				inc edi +				dec edx +				inc ebx +				jmp htBg16_innerLoop +			htBg16_rowDone: +				INC_SRC_ROW_4 +				INC_DEST_ROW +				dec ecx +				jmp htBg16_outerLoop +			htBg16_end: +			} +#endif +		} +		return; +	} + +	if (!halftoneMode && foreGndColor != -1 && backGndColor != -1) { +		// Drawing with a foreground and background colour +		if (align == 4) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			fgBg4_outerLoop: +				or ecx, ecx +				jle fgBg4_end +				mov esi, srcP +				mov edi, destP +				mov bh, byte ptr [foreGndColor] +				mov bl, byte ptr [backGndColor] +				mov edx, width +			fgBg4_innerLoop: +				or edx, edx +				jle fgBg4_rowDone +				mov al, [esi] +				cmp al, bl +				jz fgBg4_skipPixel +				mov [edi], bh +			fgBg4_skipPixel: +				inc esi +				inc edi +				dec edx +				jmp fgBg4_innerLoop +			fgBg4_rowDone: +				INC_SRC_ROW +				INC_DEST_ROW +				dec ecx +				jmp fgBg4_outerLoop +			fgBg4_end: +			} +#endif +		} else if (align == 8) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			fgBg8_outerLoop: +				or ecx, ecx +				jle fgBg8_end +				mov esi, srcP +				mov edi, destP +				mov bh, byte ptr [foreGndColor] +				mov bl, byte ptr [backGndColor] +				mov edx, width +			fgBg8_innerLoop: +				or edx, edx +				jle fgBg8_rowDone +				mov al, [esi] +				cmp al, bl +				jz fgBg8_skipPixel +				mov [edi], bh +			fgBg8_skipPixel: +				add esi, 2 +				inc edi +				dec edx +				jmp fgBg8_innerLoop +			fgBg8_rowDone: +				INC_SRC_ROW_2 +				INC_DEST_ROW +				dec ecx +				jmp fgBg8_outerLoop +			fgBg8_end: +			} +#endif +		} else if (align == 16) { +#ifdef _MSC_VER +			__asm { +				mov ecx, height +			fgBg16_outerLoop: +				or ecx, ecx +				jle fgBg16_end +				mov esi, srcP +				mov edi, destP +				mov bh, byte ptr [foreGndColor] +				mov bl, byte ptr [backGndColor] +				mov edx, width +			fgBg16_innerLoop: +				or edx, edx +				jle fgBg16_rowDone +				mov al, [esi] +				cmp al, bl +				jz fgBg16_skipPixel +				mov [edi], bh +			fgBg16_skipPixel: +				add esi, 4 +				inc edi +				dec edx +				jmp fgBg16_innerLoop +			fgBg16_rowDone: +				INC_SRC_ROW_4 +				INC_DEST_ROW +				dec ecx +				jmp fgBg16_outerLoop +			fgBg16_end: +			} +#endif +		} +		return; +	} + +	_CrtDbgBreak(); +} + +void T2BitImage::CopyImage(CDC* dc, const RECT& inSrc, const RECT& inDest, int, CRgn*) { +	RECT src; +	src.top = inSrc.top; +	src.left = inSrc.left; +	src.bottom = inSrc.bottom; +	src.right = inSrc.right; +	OffsetRect(&src, -mOrigin.x, -mOrigin.y); + +	RECT dest; +	dest.top = inDest.top; +	dest.left = inDest.left; +	dest.bottom = inDest.bottom; +	dest.right = inDest.right; + +	if ((src.right - src.left) != (dest.right - dest.left) || +		(src.top - src.bottom) != (dest.top - dest.bottom)) +		return; + +	int diffX = src.left - dest.left; +	int diffY = src.top - dest.top; + +	RECT tmp; +	tmp.top = 0; +	tmp.left = 0; +	tmp.right = mBitmap.header.biWidth; +	tmp.bottom = mBitmap.header.biHeight; + +	if (tmp.top > tmp.bottom) { +		int save = tmp.top; +		tmp.top = tmp.bottom; +		tmp.bottom = save; +	} + +	if (src.top > src.bottom) { +		int save = src.top; +		src.top = src.bottom; +		src.bottom = save; +	} + +	if (!IntersectRect(&src, &tmp, &src)) +		return; + +	OffsetRect(&dest, diffX, diffY); +	if (!IntersectRect(&dest, &dest, &src)) +		return; +	OffsetRect(&dest, -diffX, -diffY); + +	Bitmap bmp = mBitmap; +	bmp.header.biHeight = -bmp.header.biHeight; + +	SetDIBitsToDevice( +		dc->m_hDC, +		dest.left, +		dest.top, +		src.right - src.left, +		src.bottom - src.top, +		src.left, +		abs(bmp.header.biHeight) - src.bottom, +		0, +		-bmp.header.biHeight, +		mData, +		(BITMAPINFO *) &bmp, +		1 +	); +} + +void T2BitImage::Clear(int c) { +	memset(mData, c, ALIGN_ROW_SIZE(mBitmap.header.biWidth) * abs(mBitmap.header.biHeight)); +} + +void T2BitImage::SetBackGndColor(int c) { +	mBackGndColor = c; +} + +void T2BitImage::SetForeGndColor(int c) { +	mForeGndColor = c; +} + +void T2BitImage::SetOrigin(int x, int y) { +	mOrigin.x = x; +	mOrigin.y = y; +} + +void T2BitImage::SetClipRect(RECT* rect) { +	if (!rect) { +		SetRect(&mClipRect, 0, 0, mBitmap.header.biWidth, mBitmap.header.biHeight); +		mHasClipRect = false; +	} else { +		mClipRect = *rect; +		mHasClipRect = true; +	} +} + +void T2BitImage::SetHalftoneMode(BOOL m) { +	mHalftoneMode = m; +} + +void T2BitImage::DrawFocusRect(RECT rect) { +	DrawFocusRect2(rect); +	InsetRect(&rect, 1, 1); +	DrawFocusRect2(rect); +} + +void T2BitImage::DrawFocusRect2(RECT rect) { +	OffsetRect(&rect, -mOrigin.x, -mOrigin.y); + +	RECT bitmapRect; +	SetRect(&bitmapRect, 0, 0, mBitmap.header.biWidth, mBitmap.header.biHeight); + +	IntersectRect(&rect, &rect, &bitmapRect); + +	if (rect.top >= 0) +		DrawFocusLine(rect.left, rect.top, rect.right, rect.top); +	if (rect.right < mBitmap.header.biWidth) +		DrawFocusLine(rect.right - 1, rect.top, rect.right - 1, rect.bottom); +	if (rect.bottom < mBitmap.header.biHeight) +		DrawFocusLine(rect.left, rect.bottom - 1, rect.right, rect.bottom - 1); +	if (rect.left >= 0) +		DrawFocusLine(rect.left, rect.top, rect.left, rect.bottom); +} + +void T2BitImage::DrawFocusLine(int x1, int y1, int x2, int y2) { +	if (x1 > x2) { +		int tmp = x1; +		x1 = x2; +		x2 = tmp; +	} else if (y1 > y2) { +		int tmp = y1; +		y1 = y2; +		y2 = tmp; +	} + +	int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +	int counter = 0; +	unsigned char *p = mData + y1 * rowSize + x1; + +	if (x1 == x2) { +		for (int y = y1; y < y2; y++) { +			*p = (counter >= 3) ? 254 : 253; +			p += rowSize; +			counter++; +			if (counter == 6) +				counter = 0; +		} +	} else if (y1 == y2) { +		for (int x = x1; x < x2; x++) { +			*p = (counter >= 3) ? 254 : 253; +			p++; +			counter++; +			if (counter == 6) +				counter = 0; +		} +	} else { +		_CrtDbgBreak(); +	} +} + +void T2BitImage::FillMesh(RECT rect, int c) { +	OffsetRect(&rect, -mOrigin.x, -mOrigin.y); + +	RECT bitmapRect; +	SetRect(&bitmapRect, 0, 0, mBitmap.header.biWidth, mBitmap.header.biHeight); + +	if (mHasClipRect) { +		RECT clipRect = mClipRect; +		OffsetRect(&clipRect, -mOrigin.x, -mOrigin.y); +		IntersectRect(&bitmapRect, &bitmapRect, &clipRect); +	} + +	IntersectRect(&rect, &rect, &bitmapRect); +	if (!IsRectEmpty(&rect)) { +		unsigned char parity = rect.left + rect.top; +		int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +		unsigned char *p = mData + rect.top * rowSize + rect.left; +		int width = rect.right - rect.left; +		int height = rect.bottom - rect.top; +		unsigned char cByte = c; + +		if (width > 0 && height > 0) { +#ifdef _MSC_VER +			__asm { +				mov al, cByte +				mov ebx, p +				mov ecx, height +			rowLoop: +				mov ah, parity +				mov edi, ebx +				mov edx, width +			pixelLoop: +				test ah, 1 +				jz skip +				mov [edi], al +			skip: +				inc edi +				inc ah +				dec edx +				jnz pixelLoop +				add ebx, rowSize +				mov ah, parity +				inc ah +				mov parity, ah +				dec ecx +				jnz rowLoop +			} +#endif +		} +	} +} + +void T2BitImage::FillRect(RECT rect, int c) { +	OffsetRect(&rect, -mOrigin.x, -mOrigin.y); + +	RECT bitmapRect; +	SetRect(&bitmapRect, 0, 0, mBitmap.header.biWidth, mBitmap.header.biHeight); + +	if (mHasClipRect) { +		RECT clipRect = mClipRect; +		OffsetRect(&clipRect, -mOrigin.x, -mOrigin.y); +		IntersectRect(&bitmapRect, &bitmapRect, &clipRect); +	} + +	IntersectRect(&rect, &rect, &bitmapRect); +	if (!IsRectEmpty(&rect)) { +		int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +		unsigned char *p = mData + rect.top * rowSize + rect.left; +		int width = rect.right - rect.left; +		int height = rect.bottom - rect.top; +		unsigned char cByte = c; + +		if (width > 0 && height > 0) { +#ifdef _MSC_VER +			__asm { +				mov al, cByte +				mov ebx, p +				mov ecx, height +			rowLoop: +				mov edi, ebx +				mov edx, width +			pixelLoop: +				mov [edi], al +				inc edi +				dec edx +				jnz pixelLoop +				add ebx, rowSize +				dec ecx +				jnz rowLoop +			} +#endif +		} +	} +} + +int T2BitImage::GetPixel(int x, int y) { +	x -= mOrigin.x; +	y -= mOrigin.y; + +	if (x < 0 || x >= mBitmap.header.biWidth || y < 0 || y >= mBitmap.header.biHeight) +		return -1; + +	int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +	return mData[y * rowSize + x]; +} + +int T2BitImage::GetPixel(const POINT& pt) { +	return GetPixel(pt.x, pt.y); +} + +/*virtual*/ BOOL T2BitImage::IsExist() { +	return mMemHandle != NULL; +} + +void T2BitImage::DrawFrameRect(RECT rect, int c) { +	OffsetRect(&rect, -mOrigin.x, -mOrigin.y); + +	RECT bitmapRect; +	SetRect(&bitmapRect, 0, 0, mBitmap.header.biWidth, mBitmap.header.biHeight); + +	if (mHasClipRect) { +		RECT clipRect = mClipRect; +		OffsetRect(&clipRect, -mOrigin.x, -mOrigin.y); +		IntersectRect(&bitmapRect, &bitmapRect, &clipRect); +	} + +	RECT frameRect; +	IntersectRect(&frameRect, &rect, &bitmapRect); +	if (!IsRectEmpty(&frameRect)) { +		if (frameRect.top == rect.top) +			DrawFrameLine(frameRect.left, frameRect.top, frameRect.right, frameRect.top, c); +		if (frameRect.left == rect.left) +			DrawFrameLine(frameRect.left, frameRect.top, frameRect.left, frameRect.bottom, c); +		if (frameRect.bottom == rect.bottom) +			DrawFrameLine(frameRect.left, frameRect.bottom - 1, frameRect.right, frameRect.bottom - 1, c); +		if (frameRect.right == rect.right) +			DrawFrameLine(frameRect.right - 1, frameRect.top, frameRect.right - 1, frameRect.bottom, c); +	} +} + +void T2BitImage::DrawFrameLine(int x1, int y1, int x2, int y2, int c) { +	if (x1 == x2) { +		if (y1 != y2) { +			if (y2 < y1) { +				int tmp = y1; +				y1 = y2; +				y2 = tmp; +			} + +			int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +			unsigned char *p = mData + y1 * rowSize + x1; +			int count = y2 - y1; +			unsigned char cByte = c; +#ifdef _MSC_VER +			__asm { +				mov ecx, count +				mov edi, p +				mov al, cByte +				mov edx, rowSize +			pixelLoop: +				mov [edi], al +				add edi, edx +				dec ecx +				jnz pixelLoop +			} +#else +			do { +				*p = cByte; +				p += rowSize; +			} while (--count != 0); +#endif +		} +	} else if (y1 == y2) { +		if (x1 != x2) { +			if (x2 < x1) { +				int tmp = x1; +				x1 = x2; +				x2 = tmp; +			} + +			int rowSize = ALIGN_ROW_SIZE(mBitmap.header.biWidth); +			unsigned char *p = mData + y1 * rowSize + x1; +			int count = x2 - x1; +			unsigned char cByte = c; +#ifdef _MSC_VER +			__asm { +				mov ecx, count +				mov edi, p +				mov al, cByte +			pixelLoop2: +				mov [edi], al +				inc edi +				dec ecx +				jnz pixelLoop2 +			} +#else +			do { +				*p = cByte; +				p++; +			} while (--count != 0); +#endif +		} +	} else { +#line 1457 +		_ASSERT(0); +	} +} diff --git a/src/T2DLL/T2BitImage.h b/src/T2DLL/T2BitImage.h new file mode 100644 index 0000000..5e23a62 --- /dev/null +++ b/src/T2DLL/T2BitImage.h @@ -0,0 +1,56 @@ +#pragma once +#include "common.h" + +// unknown name +struct Bitmap { +	BITMAPINFOHEADER header; +	short palette[256]; +}; + +class DLL_EXPORT T2BitImage { +public: +	T2BitImage(const char* path, unsigned int id, BOOL flip); +	T2BitImage(HINSTANCE path, unsigned int id, BOOL flip); +	T2BitImage(const RECT&); +	virtual ~T2BitImage(); +	virtual BOOL IsExist(); + +	BOOL BeginDrawing(); +	void EndDrawing(); +	void CopyImage(T2BitImage&, const RECT&, const RECT&, int, CRgn*); +	void CopyImage(CDC*, const RECT&, const RECT&, int, CRgn*); +	void Clear(int); +	void SetBackGndColor(int); +	void SetForeGndColor(int); +	void SetOrigin(int, int); +	void SetClipRect(RECT*); +	void SetHalftoneMode(BOOL); +	void DrawFocusRect(RECT); +	void FillMesh(RECT, int); +	void FillRect(RECT, int); +	int GetPixel(int, int); +	int GetPixel(const POINT&); +	void DrawFrameRect(RECT, int); + +	int GetParam() { return mParam; } +	void SetParam(int v) { mParam = v; } + +protected: +	friend class T2ImageObj; + +	void SetupBitmap(BITMAPINFO* info, BOOL flip); +	void DrawFocusRect2(RECT); +	void DrawFocusLine(int, int, int, int); +	void DrawFrameLine(int, int, int, int, int); + +	Bitmap mBitmap; +	unsigned char *mData; +	POINT mOrigin; +	HGLOBAL mMemHandle; +	int mForeGndColor; +	int mBackGndColor; +	RECT mClipRect; +	BOOL mHasClipRect; +	BOOL mHalftoneMode; +	int mParam; +}; diff --git a/src/T2DLL/T2BlackOut.cpp b/src/T2DLL/T2BlackOut.cpp new file mode 100644 index 0000000..c80bafb --- /dev/null +++ b/src/T2DLL/T2BlackOut.cpp @@ -0,0 +1,49 @@ +#include "T2BlackOut.h" + +T2BlackOut::T2BlackOut(T2TowerEvent*, CResFile*, int) { +} + +/*virtual*/ T2BlackOut::~T2BlackOut() { +} + +/*virtual*/ int T2BlackOut::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2BlackOut::Exec(T2TowerDoc*) { +} + +void T2BlackOut::AddConsumptionPower(int) { +} + +void T2BlackOut::SubConsumptionPower(int) { +} + +void T2BlackOut::AddSupplyPower(int) { +} + +void T2BlackOut::SubSupplyPower() { +} + +void T2BlackOut::BreakerOn() { +} + +int T2BlackOut::GetConsumptionPower() { +} + +int T2BlackOut::GetSupplyPower() { +} + +int T2BlackOut::GetDefSupply() { +} + +int T2BlackOut::GetAddSupply() { +} + +int T2BlackOut::GetTransforPrice() { +} + +/*virtual*/ void T2BlackOut::Write(T2Archive&) { +} + +/*virtual*/ void T2BlackOut::Read(T2Archive&) { +} diff --git a/src/T2DLL/T2BlackOut.h b/src/T2DLL/T2BlackOut.h new file mode 100644 index 0000000..7d06eb5 --- /dev/null +++ b/src/T2DLL/T2BlackOut.h @@ -0,0 +1,27 @@ +#pragma once +#include "common.h" + +class T2BlackOut { +public: +	T2BlackOut(T2TowerEvent*, CResFile*, int); +	virtual ~T2BlackOut(); +	virtual int Start(T2TowerDoc*); +	virtual int Exec(T2TowerDoc*); +	void AddConsumptionPower(int); +	void SubConsumptionPower(int); +	void AddSupplyPower(int); +	void SubSupplyPower(); +	void BreakerOn(); +	int GetConsumptionPower(); +	int GetSupplyPower(); +	int GetDefSupply(); +	int GetAddSupply(); +	int GetTransforPrice(); +	virtual void Write(T2Archive&); +	virtual void Read(T2Archive&); + +	virtual unsigned long GetID() {} +	int IsBlackOut() {} +	T2BlackOut(const T2BlackOut&) {} +	T2BlackOut& operator=(const T2BlackOut&) {} +}; diff --git a/src/T2DLL/T2ClassFactory.cpp b/src/T2DLL/T2ClassFactory.cpp new file mode 100644 index 0000000..cff2ee9 --- /dev/null +++ b/src/T2DLL/T2ClassFactory.cpp @@ -0,0 +1,25 @@ +#include "T2ClassFactory.h" + +/*static*/ void T2ClassFactory::Initialize() { +} + +/*static*/ void T2ClassFactory::Discard() { +} + +/*static*/ void T2ClassFactory::Register(CLASSFACTORY_CLASSINFO*) { +} + +/*static*/ void* T2ClassFactory::Query(int) { +} + +/*static*/ void* T2ClassFactory::new_T2Archive() { +} + +/*static*/ void* T2ClassFactory::new_T2Dialog() { +} + +/*static*/ void* T2ClassFactory::new_T2Balloon() { +} + +/*static*/ void* T2ClassFactory::new_T2SoundPlayer(CWnd*, IDirectSound*) { +} diff --git a/src/T2DLL/T2ClassFactory.h b/src/T2DLL/T2ClassFactory.h new file mode 100644 index 0000000..4df7068 --- /dev/null +++ b/src/T2DLL/T2ClassFactory.h @@ -0,0 +1,18 @@ +#pragma once +#include "common.h" + +class T2ClassFactory { +public: +	static void Initialize(); +	static void Discard(); +	static void Register(CLASSFACTORY_CLASSINFO*); +	static void* Query(int); +private: +	static void* new_T2Archive(); +	static void* new_T2Dialog(); +	static void* new_T2Balloon(); +	static void* new_T2SoundPlayer(CWnd*, IDirectSound*); + +public: +	T2ClassFactory& operator=(const T2ClassFactory&) {} +}; diff --git a/src/T2DLL/T2CrossEquipArray.cpp b/src/T2DLL/T2CrossEquipArray.cpp new file mode 100644 index 0000000..3e349aa --- /dev/null +++ b/src/T2DLL/T2CrossEquipArray.cpp @@ -0,0 +1,87 @@ +#include "T2Archive.h" +#include "T2CrossEquipArray.h" +#include "T2FloorCEArray.h" +#include "T2MoverCEArray.h" +#include "T2RouteCEArray.h" +#include "T2TenantCEArray.h" + +T2CrossEquipArray::T2CrossEquipArray() { +} + +/*virtual*/ T2CrossEquipArray::~T2CrossEquipArray() { +} + +void T2CrossEquipArray::AllClear() { +	RemoveItemsAt(mItemCount, 1); +} + +void T2CrossEquipArray::ReplaceID(unsigned int oldID, unsigned int newID) { +	if (FetchIndexOf(&newID) == 0) { +		int oldIDIndex = FetchIndexOf(&oldID); +		if (oldIDIndex != 0) +			AssignItemsAt(1, oldIDIndex, &newID); +	} else { +		int oldIDIndex = FetchIndexOf(&oldID); +		if (oldIDIndex != 0) +			RemoveItemsAt(1, oldIDIndex); +	} +} + +void T2CrossEquipArray::Union(T2CrossEquipArray* other) { +	LArrayIterator iter(*other); +	unsigned int id; +	while (iter.Next(&id)) +		InsertItemsAt(1, mItemCount + 1, &id); +} + +/*virtual*/ void T2CrossEquipArray::InsertItemsAt(int count, int where, unsigned int* id) { +	if (FetchIndexOf(id) == 0) +		LArray::InsertItemsAt(count, where, id); +} + +/*virtual*/ void T2CrossEquipArray::Add(unsigned int id) { +	if (FetchIndexOf(&id) == 0) +		LArray::Add(&id); +} + +/*static*/ T2CrossEquipArray* T2CrossEquipArray::ReadCEArray(T2Archive& archive) { +	T2CrossEquipArray *array = NULL; +	DWORD classID; +	archive >> classID; + +	switch (classID) { +		case '_CEA': +			array = new T2CrossEquipArray; +			break; +		case 'TCEA': +			array = new T2TenantCEArray; +			break; +		case 'RCEA': +			array = new T2RouteCEArray; +			break; +		case 'FCEA': +			array = new T2FloorCEArray; +			break; +		case 'MCEA': +			array = new T2MoverCEArray; +			break; +	} + +	if (array) +		array->ReadAsWord(archive); + +	return array; +} + +/*static*/ void T2CrossEquipArray::WriteCEArray(T2CrossEquipArray* array, T2Archive& archive) { +	DWORD classID; + +	if (!array) { +		classID = 'xCEA'; +		archive << classID; +	} else { +		classID = array->GetCEClassID(); +		archive << classID; +		array->WriteAsWord(archive); +	} +} diff --git a/src/T2DLL/T2CrossEquipArray.h b/src/T2DLL/T2CrossEquipArray.h new file mode 100644 index 0000000..016ea88 --- /dev/null +++ b/src/T2DLL/T2CrossEquipArray.h @@ -0,0 +1,18 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class T2CrossEquipArray : public LArray { +public: +	T2CrossEquipArray(); +	virtual ~T2CrossEquipArray(); +	void AllClear(); +	void ReplaceID(unsigned int, unsigned int); +	void Union(T2CrossEquipArray*); +	virtual void InsertItemsAt(int, int, unsigned int*); +	virtual void Add(unsigned int); +	virtual DWORD GetCEClassID() { return '_CEA'; } + +	static T2CrossEquipArray* ReadCEArray(T2Archive&); +	static void WriteCEArray(T2CrossEquipArray*, T2Archive&); +}; diff --git a/src/T2DLL/T2CustomerTableIterator.cpp b/src/T2DLL/T2CustomerTableIterator.cpp new file mode 100644 index 0000000..4e3fd46 --- /dev/null +++ b/src/T2DLL/T2CustomerTableIterator.cpp @@ -0,0 +1,13 @@ +#include "T2CustomerTableIterator.h" + +T2CustomerTableIterator::T2CustomerTableIterator(const T2TenantMemberTableDef*) { +} + +T2CustomerTableIterator::~T2CustomerTableIterator() { +} + +int T2CustomerTableIterator::Next(T2TenantMemberDef*&, unsigned int&) { +} + +void T2CustomerTableIterator::CalcNextIndex() { +} diff --git a/src/T2DLL/T2CustomerTableIterator.h b/src/T2DLL/T2CustomerTableIterator.h new file mode 100644 index 0000000..ba07778 --- /dev/null +++ b/src/T2DLL/T2CustomerTableIterator.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2CustomerTableIterator { +public: +	T2CustomerTableIterator(const T2TenantMemberTableDef*); +	~T2CustomerTableIterator(); +	int Next(T2TenantMemberDef*&, unsigned int&); +protected: +	void CalcNextIndex(); + +public: +	T2CustomerTableIterator& operator=(const T2CustomerTableIterator&) {} +}; diff --git a/src/T2DLL/T2DateTime.cpp b/src/T2DLL/T2DateTime.cpp new file mode 100644 index 0000000..5cb704d --- /dev/null +++ b/src/T2DLL/T2DateTime.cpp @@ -0,0 +1,153 @@ +#include "T2Archive.h" +#include "T2DateTime.h" + +T2DateTime::T2DateTime() { +	mYear = 0; +	mMonth = 0; +	mRawMinutes = 0; +	mSeconds = 0; +} + +T2DateTime::T2DateTime(int year, int month, int hours, int minutes, int seconds) { +	mYear = year; +	mMonth = month; +	mRawMinutes = hours * 60 + minutes; +	mSeconds = seconds; +} + +T2DateTime::T2DateTime(T2Archive& archive) { +	unsigned short v; + +	archive >> v; +	mYear = v; +	archive >> v; +	mMonth = v; +	archive >> v; +	mRawMinutes = v; +	archive >> v; +	mSeconds = v; +} + +/*virtual*/ T2DateTime::~T2DateTime() { +} + +int T2DateTime::GetTimeZone() { +	int h = Get24Hour(); +	if (h < 2) return 0; +	if (h < 6) return 1; +	if (h < 9) return 2; +	if (h < 10) return 3; +	if (h < 12) return 4; +	if (h < 13) return 5; +	if (h < 15) return 6; +	if (h < 18) return 7; +	if (h < 22) return 8; +	return 9; +} + +/*static*/ int T2DateTime::IsEqualDate(T2DateTime* a, T2DateTime* b) { +	return (a->mYear == b->mYear) && (a->mMonth == b->mMonth); +} + +/*static*/ int T2DateTime::IsEqualDateTime(T2DateTime* a, T2DateTime* b) { +	return IsEqualDate(a, b) && (a->mRawMinutes == b->mRawMinutes); +} + +void T2DateTime::AddMinutes(unsigned int m) { +	mRawMinutes += m; +	Validate(); +} + +int T2DateTime::IsIncDateTime() { +	int result = false; + +	mSeconds++; +	if (mSeconds >= 4) { +		result = true; +		mSeconds = 0; +		mRawMinutes++; +		if (mRawMinutes >= 1440) { +			mMonth++; +			mRawMinutes -= 1440; +		} +		if (mMonth >= 12) { +			mYear++; +			mMonth -= 12; +		} +	} + +	return result; +} + +void T2DateTime::IncDate() { +	mMonth++; +	if (mMonth >= 12) { +		mYear++; +		mMonth -= 12; +	} +} + +unsigned int T2DateTime::CalcLapseDays(unsigned int d) const { +	return CalcTotalDays() - d; +} + +unsigned int T2DateTime::CalcLapseYears(unsigned int d) const { +	return (CalcTotalDays() - d) / 12; +} + +int T2DateTime::WithinHour(int a, int b) const { +	return WithinMinutes(a * 60, b * 60); +} + +int T2DateTime::WithinMinutes(int a, int b) const { +	int ret = true; + +	int minA = AdjustMinutes(a); +	int minB = AdjustMinutes(b); + +	if (minA < minB) { +		if ((mRawMinutes < minA) || (mRawMinutes >= minB)) +			ret = false; +	} else if (minA > minB) { +		if ((mRawMinutes >= minB) && (mRawMinutes < minA)) +			ret = false; +	} + +	return ret; +} + +int T2DateTime::AdjustMinutes(int m) const { +	int result = m; +	if (result < 0) +		result += 1440; +	else if (result >= 1440) +		result -= 1440; +	return result; +} + +/*virtual*/ void T2DateTime::Write(T2Archive& archive) { +	unsigned short v = mYear; +	archive << v; +	v = mMonth; +	archive << v; +	v = mRawMinutes; +	archive << v; +	v = mSeconds; +	archive << v; +} + +int T2DateTime::IsHoliday(T2TowerDoc* doc) { +	// TODO virt +	return false; +} + +void T2DateTime::Validate() { +	mRawMinutes += (mSeconds / 4); +	mSeconds = mSeconds % 4; + +	mMonth += (mRawMinutes / 1440); +	mRawMinutes %= 1440; + +	mYear += (mMonth / 12); +	mMonth %= 12; +} diff --git a/src/T2DLL/T2DateTime.h b/src/T2DLL/T2DateTime.h new file mode 100644 index 0000000..288ef9b --- /dev/null +++ b/src/T2DLL/T2DateTime.h @@ -0,0 +1,59 @@ +#pragma once +#include "common.h" + +class T2DateTime { +public: +	T2DateTime(); +	T2DateTime(int year, int month, int hours, int minutes, int seconds); +	T2DateTime(T2Archive& archive); +	virtual ~T2DateTime(); +	int GetTimeZone(); +	static int IsEqualDate(T2DateTime* a, T2DateTime* b); +	static int IsEqualDateTime(T2DateTime* a, T2DateTime* b); +	void AddMinutes(unsigned int m); +	int IsIncDateTime(); +	void IncDate(); +	unsigned int CalcLapseDays(unsigned int d) const; +	unsigned int CalcLapseYears(unsigned int d) const; +	int WithinHour(int a, int b) const; +	int WithinMinutes(int a, int b) const; +protected: +	int AdjustMinutes(int m) const; +public: +	virtual void Write(T2Archive& archive); +	int IsHoliday(T2TowerDoc* doc); +	void Validate(); + +	//T2DateTime(const T2DateTime&) {} +	unsigned int GetYear() const { return mYear; } +	unsigned int GetQuarter() const { return mMonth / 3 + 1; } +	unsigned int GetSeason() const { return mMonth / 3 + 1; } +	unsigned int GetDay() const { return mMonth % 3 + 1; } +	unsigned int GetMonth() const { return mMonth + 1; } +	unsigned int GetHour() const { return (mRawMinutes % 720) / 60; } +	unsigned int Get24Hour() const { return mRawMinutes / 60; } +	unsigned int GetMinutes() const { return mRawMinutes % 60; } +	unsigned int GetRawMinutes() const { return mRawMinutes; } +	int CalcTotalDays() const { return (mYear - 1) * 12 + mMonth; } +	int IsWeekday(T2TowerDoc* doc) { return !IsHoliday(doc); } +	int IsDay() const { +		return (mRawMinutes >= 360 && mRawMinutes <= 1079); +	} +	int IsMidNight() const { +		return mRawMinutes < 360; +	} +	int IsOclock24(unsigned int hour) const { +		return (Get24Hour() == hour) && (GetMinutes() == 0) && (mSeconds == 0); +	} +protected: +	unsigned int CalcTotalCount() const { +		return mSeconds + ((mYear * 12 + mMonth) * 1440 + mRawMinutes) * 4; +	} +//public: +	//T2DateTime& operator=(const T2DateTime&) {} + +	unsigned int mYear; +	unsigned int mMonth; +	unsigned int mRawMinutes; +	unsigned int mSeconds; +}; diff --git a/src/T2DLL/T2DayLightFilter.cpp b/src/T2DLL/T2DayLightFilter.cpp new file mode 100644 index 0000000..696df67 --- /dev/null +++ b/src/T2DLL/T2DayLightFilter.cpp @@ -0,0 +1,111 @@ +#include "T2DayLightFilter.h" +#include <MINMAX.H> + +T2DayLightFilter::T2DayLightFilter() { +	mBaseCol.rgbRed = 0; +	mBaseCol.rgbGreen = 0; +	mBaseCol.rgbBlue = 0; +	mTime = 0; +} + +T2DayLightFilter::~T2DayLightFilter() { +} + +void T2DayLightFilter::SetTime(int t1, int t2) { +	double time; +	double base = (sin(2.0 * (3.141592 * (t1 / 1000.0))) * 8.0) + 500.0; +	double midpoint = 1000.0 - base; +	double low = midpoint / 2.0; +	double high = 1000.0 - (midpoint / 2.0); + +	if (t2 < low) { +		time = -90.0 * cos((3.141592 * (t2 / (midpoint / 2.0))) / 2.0); +	} else if (t2 < high) { +		time = 90.0 * sin(3.141592 * ((t2 - low) / base)); +	} else { +		time = -90.0 * sin((3.141592 * ((t2 - high) / (midpoint / 2.0))) / 2.0); +	} + +	if (time < 0.0) { +		mTime = -int(-time + 0.5); +	} else { +		mTime = int(time + 0.5); +	} +	if (mTime > 90) +		mTime = 90; +	if (mTime < -90) +		mTime = -90; + +	while (mTime < 0) +		mTime += 360; +	while (mTime >= 360) +		mTime -= 360; + +	CalcDayLightColor(&mBaseCol); +} + +void T2DayLightFilter::RefractionColor(RGBQUAD* rgb) { +	rgb->rgbRed = (mBaseCol.rgbRed * rgb->rgbRed) / 255; +	rgb->rgbGreen = (mBaseCol.rgbGreen * rgb->rgbGreen) / 255; +	rgb->rgbBlue = (mBaseCol.rgbBlue * rgb->rgbBlue) / 255; +} + +void T2DayLightFilter::CalcDayLightColor(RGBQUAD* rgb) { +	double base = (0.5 * sin((3.141592 * mTime) / 180.0)) + 0.5; +	if (base < 0.0) +		base = 0.0; + +	double outR = base; +	double outG = base; +	double outB = base; + +	double tint1 = 1.1 * sin((3.141592 * mTime) / 180.0); +	if (tint1 > 1.0) +		tint1 = 1.0; +	else if (tint1 < 0.1) +		tint1 = 0.1; + +	outG *= 1.0 - (0.8 * (1.0 - tint1)); +	outB *= tint1; + +	outR += 0.4; +	outG += 0.4; +	outB += 0.4; + +	double tint2 = 0.2 + (outR * 0.35) + (outG * 0.45) + (outB * 0.2); +	if (tint2 > 1.0) +		tint2 = 1.0; + +	outR *= tint2; +	outG *= 1.0 - (0.7 * (1.0 - tint2)); + +	outR = min(max(outR, 0.0), 1.0); +	outG = min(max(outG, 0.0), 1.0); +	outB = min(max(outB, 0.0), 1.0); + +	rgb->rgbRed = outR * 255.0; +	rgb->rgbGreen = outG * 255.0; +	rgb->rgbBlue = outB * 255.0; +} + +void T2DayLightFilter::SkyColor(RGBQUAD* rgb) { +	double inR = mBaseCol.rgbRed / 255.0; +	double inG = mBaseCol.rgbGreen / 255.0; +	double inB = mBaseCol.rgbBlue / 255.0; + +	double outR = inR; +	double outG = inG; +	double outB = inB; + +	outR *= (rgb->rgbRed / 255.0); +	outG *= (rgb->rgbGreen / 255.0); +	outB *= (rgb->rgbBlue / 255.0); + +	outR = (outR * 0.45) + (inR * 0.55); +	outG = (outG * 0.6) + (inG * 0.4); +	outB = (outB * 0.6) + (inB * 0.4); + +	rgb->rgbRed = 255.0 * outR; +	rgb->rgbGreen = 255.0 * outG; +	rgb->rgbBlue = 255.0 * outB; +} diff --git a/src/T2DLL/T2DayLightFilter.h b/src/T2DLL/T2DayLightFilter.h new file mode 100644 index 0000000..727bd54 --- /dev/null +++ b/src/T2DLL/T2DayLightFilter.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2DayLightFilter { +public: +	T2DayLightFilter(); +	~T2DayLightFilter(); +	void SetTime(int, int); +	void RefractionColor(RGBQUAD*); +	void SkyColor(RGBQUAD*); +protected: +	void CalcDayLightColor(RGBQUAD*); + +	RGBQUAD mBaseCol; +	int mTime; +}; diff --git a/src/T2DLL/T2DayParamDef.cpp b/src/T2DLL/T2DayParamDef.cpp new file mode 100644 index 0000000..889b0c9 --- /dev/null +++ b/src/T2DLL/T2DayParamDef.cpp @@ -0,0 +1,16 @@ +#include "CResFile.h" +#include "T2DayParamDef.h" + +T2DayParamDef::T2DayParamDef(CResFile& resFile) { +	float divisor = 100.0f; + +	for (unsigned int day = 0; day < kMaxDay; day++) { +		for (unsigned int whether = 0; whether < kMaxWhether; whether++) { +			resFile >> mEntries[day][whether].mPercent; +			mEntries[day][whether].mRate = mEntries[day][whether].mPercent / divisor; +		} +	} +} + +/*virtual*/ T2DayParamDef::~T2DayParamDef() { +} diff --git a/src/T2DLL/T2DayParamDef.h b/src/T2DLL/T2DayParamDef.h new file mode 100644 index 0000000..50c7666 --- /dev/null +++ b/src/T2DLL/T2DayParamDef.h @@ -0,0 +1,32 @@ +#pragma once +#include "common.h" + +class T2DayParamDef { +public: +	enum EDay { +		Day_0, +		Day_1, +		kMaxDay +	}; +	enum EWhether { +		Whether_0, +		Whether_1, +		kMaxWhether +	}; + +	T2DayParamDef(CResFile&); +	virtual ~T2DayParamDef(); + +	unsigned int GetPercent(EDay day, EWhether whether) const { +		return mEntries[day][whether].mPercent; +	} +	float GetRate(EDay day, EWhether whether) const { +		return mEntries[day][whether].mRate; +	} + +protected: +	struct { +		unsigned int mPercent; +		float mRate; +	} mEntries[kMaxDay][kMaxWhether]; +}; diff --git a/src/T2DLL/T2Dialog.cpp b/src/T2DLL/T2Dialog.cpp new file mode 100644 index 0000000..c00b5d7 --- /dev/null +++ b/src/T2DLL/T2Dialog.cpp @@ -0,0 +1,331 @@ +#include "CTokenizer.h" +#include "T2Dialog.h" +#include "T2TowerDoc.h" +#include "T2WorldDef.h" + +IMPLEMENT_DYNAMIC(T2Dialog, CWnd) + +T2Dialog::T2Dialog() { +	mInModalLoop = false; +	mUserCon = 0; +	mDeleteOnClose = false; +	mFontName = "�l�r �o�S�V�b�N"; + +	for (int i = 0; i < 10; i++) +		mFontNums[i] = 0; +} + +/*virtual*/ T2Dialog::~T2Dialog() { +	for (int i = 0; i < 10; i++) { +		if (mFonts[i]) +			delete mFonts[i]; +	} +} + +void T2Dialog::Realize(void* a, T2DLGTEMPLATE* tmpl, T2TowerDoc* towerDoc, T2ImageObj* imageObj, CPalette* palette, int b, CWnd* parentWnd, UINT nID, int d) { +	mEC = a; +	mTowerDoc = towerDoc; +	mF4 = d; +	mTemplate = *tmpl; +	mImageObj = imageObj; + +	if (towerDoc && mTowerDoc->mWorldDef) +		mPalette = mTowerDoc->mWorldDef->GetPalette(); +	else if (palette) +		mPalette = palette; +	else +		mPalette = NULL; + +	if (!parentWnd) +		parentWnd = AfxGetMainWnd(); + +	for (int i = 0; i < 10; i++) +		mFonts[i] = NULL; +	mFontCount = 0; +	mCurrentFont = -1; + +	RECT rect; +	rect.left = 0; +	rect.top = 0; +	rect.right = 100; +	rect.bottom = 100; + +	CString wndClass = AfxRegisterWndClass( +		CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS, +		LoadCursor(NULL, IDC_ARROW), +		(HBRUSH) GetStockObject(WHITE_BRUSH), +		NULL); + +	CreateEx( +		b ? WS_EX_TOOLWINDOW : 0, +		wndClass, +		"", +		b ? (WS_POPUP | WS_CAPTION) : WS_CHILD, +		rect, +		parentWnd, +		nID +	); +} + +BEGIN_MESSAGE_MAP(T2Dialog, CWnd) +	ON_WM_CREATE() +	ON_WM_DESTROY() +	ON_WM_QUERYNEWPALETTE() +	ON_WM_ERASEBKGND() +	ON_WM_LBUTTONDBLCLK() +	ON_WM_LBUTTONDOWN() +	ON_WM_LBUTTONUP() +	ON_WM_ACTIVATEAPP() +END_MESSAGE_MAP() + +int T2Dialog::OnCreate(CREATESTRUCT* cs) { +	if (CWnd::OnCreate(cs) == -1) +		return -1; + +	HRSRC rsrc = FindResource(mTemplate.moduleHandle, MAKEINTATOM(mTemplate.resID), "T2DLG"); +	if (!rsrc) { +		MessageBox("�_�C�A���O������܂���B"); +		return 0; +	} + +#line 90 +	_ASSERT(rsrc); + +	HGLOBAL hglobal = LoadResource(mTemplate.moduleHandle, rsrc); +#line 92 +	_ASSERT(hglobal); + +	void *resData = LockResource(hglobal); +#line 94 +	_ASSERT(resData); + +	DWORD resSize = SizeofResource(mTemplate.moduleHandle, rsrc); +	char *buffer = (char *) malloc(resSize + 1); +	memcpy(buffer, resData, resSize); +	buffer[resSize] = 0; + +	DoOnCreate(buffer); +	free(buffer); + +	OnT2Create(); + +	if (mTowerDoc && !(GetWindowLong(m_hWnd, GWL_STYLE) & WS_CHILD)) { +		if (mModal != 0) +			mTowerDoc->towerDoc_vf1A0(1); +		if (mModal == 1) +			mTowerDoc->towerDoc_vf290(1); +	} + +	if (mF4 && !(cs->style & WS_CHILD)) +		ShowWindow(SW_SHOW); + +	return 0; +} + +T2Dialog::T2DialogDef::T2DialogDef() +	: width(100) +	, height(100) +	, modal(1) +	, title(NULL) +	, center(true) +	, flags(0x50000000) // is this a style? +{ +} + +/*virtual*/ T2Dialog::T2DialogDef::~T2DialogDef() { +} + +/*virtual*/ void T2Dialog::AfterBurner(T2DialogDef& def) { +	mModal = def.modal; +	SetWindowText(def.title); + +	CRect windowRect, clientRect, desktopRect; +	GetWindowRect(windowRect); +	GetClientRect(clientRect); +	GetDesktopWindow()->GetClientRect(desktopRect); + +	def.width += (windowRect.Width() - clientRect.Width()); +	def.height += (windowRect.Height() - clientRect.Height()); + +	int cx = def.center ? (mTemplate.pt.x - def.width / 2) : mTemplate.pt.x; +	if (cx < desktopRect.left) +		cx = desktopRect.left; +	if (cx + def.width >= desktopRect.right) +		cx = desktopRect.right - def.width; + +	int cy = def.center ? (mTemplate.pt.y - def.height / 2) : mTemplate.pt.y; +	if (cy < desktopRect.top) +		cy = desktopRect.top; +	if (cy + def.height >= desktopRect.bottom) +		cy = desktopRect.bottom - def.height; + +	SetWindowPos(NULL, cx, cy, def.width, def.height, SWP_NOZORDER); +} + +/*virtual*/ void T2Dialog::DoOnCreate(char* data) { +	T2DialogDef def; +	CreateDlgItemLoop(def, data); +	AfterBurner(def); +} + +void T2Dialog::CreateDlgItemLoop(T2DialogDef& def, char* data) { +	CTokenizer tokenizer(data); + +	while (tokenizer.NextWord()) { +		if (tokenizer.Current()[0] == '#') +			tokenizer.NextString("\r\n"); +		else +			CreateDlgItem(tokenizer, def); +	} +} + +/*virtual*/ void T2Dialog::CreateDlgItem(CTokenizer& tokenizer, T2DialogDef& def) { +	// TODO: this requires like 500 other classes lmfao +} + +void T2Dialog::OnDestroy() { +	OnT2Destroy(); +	CWnd::OnDestroy(); + +	if (mTowerDoc && !(GetWindowLong(m_hWnd, GWL_STYLE) & WS_CHILD)) { +		if (mModal != 0) +			mTowerDoc->towerDoc_vf1A0(0); +		if (mModal == 1) +			mTowerDoc->towerDoc_vf290(0); +	} +} + +int T2Dialog::OnQueryNewPalette() { +	return CWnd::OnQueryNewPalette(); +} + +int T2Dialog::OnEraseBkgnd(CDC* dc) { +	int result = true; + +	if (!OnT2PreEraseBkgnd(dc)) { +		int savedDC = dc->SaveDC(); + +		dc->SelectPalette(mPalette, false); +		dc->RealizePalette(); + +		CBrush brush; +		brush.CreateStockObject(LTGRAY_BRUSH); + +		CRect rect1; +		GetClientRect(rect1); +		dc->FillRect(rect1, &brush); + +		CPen pen1; +		pen1.CreatePen(PS_SOLID, 0, PALETTERGB(255, 255, 255)); + +		CPen pen2; +		pen2.CreateStockObject(GRAY_BRUSH); // wait... that's not a pen + +		CRect rect2; +		GetClientRect(rect2); + +		dc->SelectObject(pen1); +		dc->MoveTo(rect2.right - 1, rect2.top); +		dc->LineTo(rect2.left, rect2.top); +		dc->LineTo(rect2.left, rect2.bottom); + +		dc->SelectObject(pen2); +		dc->MoveTo(rect2.right - 1, rect2.top + 1); +		dc->LineTo(rect2.right - 1, rect2.bottom - 1); +		dc->LineTo(rect2.left, rect2.bottom - 1); + +		dc->RestoreDC(savedDC); + +		result = OnT2EraseBkgnd(dc); +	} + +	return result; +} + +/*virtual*/ int T2Dialog::OnCommand(UINT cmd, long data) { +	int result = true; + +	WORD hi = HIWORD(cmd); +	WORD lo = LOWORD(cmd); + +	if ((lo == 1 || lo == 2) && (hi == 0)) { +		if (lo == 1) +			OnT2OK(); +		else +			OnT2Cancel(); +		DoClose(lo); +	} else { +		result = OnT2DialogCommand(cmd, data); +	} + +	return result; +} + +int T2Dialog::DoModal() { +	mInModalLoop = true; +	int result = RunModalLoop(MLF_NOIDLEMSG); +	if (mInModalLoop) +		DestroyWindow(); +	return result; +} + +void T2Dialog::DoClose(int nResult) { +	if (mInModalLoop) +		EndModalLoop(nResult); +	else +		DestroyWindow(); +} + +/*virtual*/ int T2Dialog::PreTranslateMessage(MSG* msg) { +	return CWnd::PreTranslateMessage(msg); +} + +/*virtual*/ int T2Dialog::PreCreateWindow(CREATESTRUCT&) { +	return 1; +} + +void T2Dialog::MakeRadioGroup(int, int, int) { +	// TODO - depends on vfCC of something +} + +void T2Dialog::MakeTabPanel(int baseID1, int baseID2, int count, int currentIndex) { +	for (unsigned short i = 1; i <= count; i++) { +		unsigned short id2 = baseID2 + i; +		unsigned short id1 = baseID1 + i; +		GetDlgItem(id2)->EnableWindow(i != currentIndex); +		if (baseID1 != 0) +			GetDlgItem(id1)->ShowWindow((i != currentIndex) ? SW_HIDE : SW_SHOW); +	} +} + +void T2Dialog::OnLButtonDblClk(UINT nFlags, CPoint pt) { +	OnT2DlgLButtonDblClk(nFlags, pt); +} + +void T2Dialog::OnLButtonDown(UINT nFlags, CPoint pt) { +	OnT2DlgLButtonDown(nFlags, pt); +} + +void T2Dialog::OnLButtonUp(UINT nFlags, CPoint pt) { +	OnT2DlgLButtonUp(nFlags, pt); +} + +/*virtual*/ void T2Dialog::PostNcDestroy() { +	if (mDeleteOnClose) +		delete this; +	else +		CWnd::PostNcDestroy(); +} + +HFONT T2Dialog::GetFont() { +	HFONT font = NULL; + +	if (mCurrentFont >= 0) +		font = *mFonts[mCurrentFont]; + +	return font; +} + +void T2Dialog::OnActivateApp(BOOL bActive, HTASK hTask) { +	CWnd::OnActivateApp(bActive, hTask); +} diff --git a/src/T2DLL/T2Dialog.h b/src/T2DLL/T2Dialog.h new file mode 100644 index 0000000..48a35da --- /dev/null +++ b/src/T2DLL/T2Dialog.h @@ -0,0 +1,91 @@ +#pragma once +#include "common.h" +#include "LListener.h" + +struct T2DLGTEMPLATE { +	POINT pt; +	HINSTANCE moduleHandle; +	int resID; +}; + +class T2Dialog : public CWnd, public LListener { +	DECLARE_DYNAMIC(T2Dialog) +	DECLARE_MESSAGE_MAP() + +public: +	T2Dialog(); +	virtual ~T2Dialog(); +	void Realize(void*, T2DLGTEMPLATE*, T2TowerDoc*, T2ImageObj*, CPalette*, int, CWnd* parentWnd, UINT nID, int); + +	int DoModal(); +	void DoClose(int nResult); +	virtual int PreTranslateMessage(MSG*); +	void MakeRadioGroup(int, int, int); +	void MakeTabPanel(int, int, int, int); +	HFONT GetFont(); + +	T2TowerDoc* GetDocument() const { return mTowerDoc; } +	T2DlgItem* GetT2DlgItem(int id) const { +		return (T2DlgItem *) GetDlgItem(id); +	} +	void SetUserCon(long uc) { mUserCon = uc; } +	long GetUserCon() { return mUserCon; } + +	class T2DialogDef { +	public: +		T2DialogDef(); +		virtual ~T2DialogDef(); + +		int width; +		int height; +		int modal; +		char *title; +		int _14; +		int center; +		int flags; +	}; + +protected: +	int OnCreate(CREATESTRUCT*); +	void OnLButtonDblClk(UINT nFlags, CPoint pt); +	void OnLButtonDown(UINT nFlags, CPoint pt); +	void OnLButtonUp(UINT nFlags, CPoint pt); +	void OnActivateApp(BOOL bActive, HTASK hTask); +	void OnDestroy(); +	int OnQueryNewPalette(); +	int OnEraseBkgnd(CDC*); + +	virtual int PreCreateWindow(CREATESTRUCT&); +	virtual int OnCommand(UINT cmd, long data); +	virtual void PostNcDestroy(); +	virtual void AfterBurner(T2DialogDef& def); +	virtual void DoOnCreate(char* data); +	void CreateDlgItemLoop(T2DialogDef& def, char* data); +	virtual void CreateDlgItem(CTokenizer& tokenizer, T2DialogDef& def); +	virtual int OnT2DialogCommand(UINT cmd, long data) { return 1; } +	virtual int OnT2EraseBkgnd(CDC* dc) { return 1; } +	virtual int OnT2PreEraseBkgnd(CDC* dc) { return 0; } +	virtual void OnT2Create() {} +	virtual void OnT2Destroy() {} +	virtual void OnT2DlgLButtonDown(UINT nFlags, CPoint pt) {} +	virtual void OnT2DlgLButtonUp(UINT nFlags, CPoint pt) {} +	virtual void OnT2DlgLButtonDblClk(UINT nFlags, CPoint pt) {} +	virtual void OnT2OK() {} +	virtual void OnT2Cancel() {} + +	int mDeleteOnClose; +	T2DLGTEMPLATE mTemplate; +	long mUserCon; +	T2TowerDoc *mTowerDoc; +	T2ImageObj *mImageObj; +	CPalette *mPalette; +	int mModal; +	int mInModalLoop; +	CFont *mFonts[10]; +	int mFontNums[10]; +	int mFontCount; +	int mCurrentFont; +	void *mEC; +	CString mFontName; +	int mF4; +}; diff --git a/src/T2DLL/T2DlgItem.cpp b/src/T2DLL/T2DlgItem.cpp new file mode 100644 index 0000000..f7b7b7e --- /dev/null +++ b/src/T2DLL/T2DlgItem.cpp @@ -0,0 +1,200 @@ +#include "T2DlgItem.h" + +T2DlgItem::T2DlgItem() { +} + +T2DlgItem::T2DlgItem(T2TowerDoc* towerDoc, T2ImageObj* imageObj, CPalette* palette) { +	mTowerDoc = towerDoc; +	mImageObj = imageObj; +	mPalette = palette; +	mPattern = 0; +	m74 = 0; +	mFont = NULL; +	mValue = 0; +} + +/*virtual*/ T2DlgItem::~T2DlgItem() { +} + +BEGIN_MESSAGE_MAP(T2DlgItem, CWnd) +	ON_WM_ERASEBKGND() +	ON_WM_LBUTTONDOWN() +	ON_WM_LBUTTONUP() +	ON_WM_RBUTTONDOWN() +	ON_WM_RBUTTONUP() +	ON_WM_MOUSEMOVE() +	ON_WM_ENABLE() +	ON_WM_CREATE() +	ON_WM_SIZE() +	ON_WM_SETFOCUS() +	ON_WM_KILLFOCUS() +	ON_WM_TIMER() +	ON_WM_CLOSE() +END_MESSAGE_MAP() + +/*virtual*/ BOOL T2DlgItem::Create(const char* windowName, DWORD style, const RECT& rect, CWnd* parentWnd, UINT nId) { +	CRect crect = rect; +	CString className = AfxRegisterWndClass( +		WS_EX_CLIENTEDGE, +		LoadCursor(NULL, IDC_ARROW), +		(HBRUSH) GetStockObject(WHITE_BRUSH), +		NULL); +	return CWnd::Create(className, windowName, style, crect, parentWnd, nId); +} + +/*virtual*/ T2BitImage* T2DlgItem::GetObjectImage(RECT&, const char*, int, int, int, int) const { +	// TODO T2ImageObj, T2TowerDoc, T2WorldDef +	return 0; +} + +/*virtual*/ void T2DlgItem::PostNcDestroy() { +	DestroySelf(); +} + +/*virtual*/ void T2DlgItem::DestroySelf() { +	delete this; +} + +/*virtual*/ int T2DlgItem::OnT2DlgItemEraseBkgnd(CDC*) { +	return false; +} + +/*virtual*/ void T2DlgItem::OnT2DlgItemLButtonDown(UINT nFlags, CPoint pt) { +} + +/*virtual*/ void T2DlgItem::OnT2DlgItemLButtonUp(UINT nFlags, CPoint pt) { +} + +/*virtual*/ void T2DlgItem::OnT2DlgItemRButtonDown(UINT nFlags, CPoint pt) { +} + +/*virtual*/ void T2DlgItem::OnT2DlgItemRButtonUp(UINT nFlags, CPoint pt) { +} + +/*virtual*/ void T2DlgItem::OnT2DlgItemMouseMove(UINT nFlags, CPoint pt) { +} + +/*virtual*/ void T2DlgItem::OnT2DlgItemEnable(int) { +	Invalidate(); +} + +/*virtual*/ int T2DlgItem::OnT2DlgItemCreate(CREATESTRUCT*) { +	return false; +} + +int T2DlgItem::OnEraseBkgnd(CDC* dc) { +	return OnT2DlgItemEraseBkgnd(dc); +} + +void T2DlgItem::OnLButtonDown(UINT nFlags, CPoint pt) { +	OnT2DlgItemLButtonDown(nFlags, pt); +} + +void T2DlgItem::OnLButtonUp(UINT nFlags, CPoint pt) { +	OnT2DlgItemLButtonUp(nFlags, pt); +} + +void T2DlgItem::OnRButtonDown(UINT nFlags, CPoint pt) { +	OnT2DlgItemRButtonDown(nFlags, pt); +} + +void T2DlgItem::OnRButtonUp(UINT nFlags, CPoint pt) { +	OnT2DlgItemRButtonUp(nFlags, pt); +} + +void T2DlgItem::OnMouseMove(UINT nFlags, CPoint pt) { +	OnT2DlgItemMouseMove(nFlags, pt); +} + +void T2DlgItem::OnEnable(int v) { +	CWnd::OnEnable(v); +	OnT2DlgItemEnable(v); +} + +int T2DlgItem::OnCreate(CREATESTRUCT* cs) { +	if (CWnd::OnCreate(cs) == -1) +		return -1; +	return OnT2DlgItemCreate(cs); +} + +/*virtual*/ void T2DlgItem::CreateSubItem(void*) { +} + +/*virtual*/ void T2DlgItem::SetFont(HFONT font) { +	mFont = font; +	Invalidate(); +} + +/*virtual*/ int T2DlgItem::GetValue() { +	return mValue; +} + +/*virtual*/ void T2DlgItem::SetValue(int value) { +	mValue = value; +	Invalidate(); +} + +/*virtual*/ void T2DlgItem::GetDescriptor(CString& outStr) const { +	GetWindowText(outStr); +} + +/*virtual*/ void T2DlgItem::SetDescriptor(const CString& str) { +	SetWindowText(str); +} + +void T2DlgItem::Notify(unsigned short msg, void* data) { +	Notify(GetDlgCtrlID(), msg, data); +} + +void T2DlgItem::Notify(unsigned short id, unsigned short msg, void* data) { +	BroadcastMessage(id, data); +	GetParent()->SendMessage(WM_COMMAND, id | (msg << 16), (LPARAM) m_hWnd); +} + +int T2DlgItem::GetPattern() const { +	return IsWindowEnabled() ? mPattern : 200; +} + +void T2DlgItem::SetPattern(int pattern) { +	mPattern = pattern; +} + +void T2DlgItem::OnSize(UINT nType, int cx, int cy) { +	CWnd::OnSize(nType, cx, cy); +	OnT2Size(nType, cx, cy); +} + +/*virtual*/ void T2DlgItem::OnT2Size(UINT nType, int cx, int cy) { +} + +void T2DlgItem::OnSetFocus(CWnd* wnd) { +	CWnd::OnSetFocus(wnd); +	OnT2SetFocus(wnd); +} + +void T2DlgItem::OnKillFocus(CWnd* wnd) { +	CWnd::OnKillFocus(wnd); +	OnT2KillFocus(wnd); +} + +/*virtual*/ void T2DlgItem::OnT2SetFocus(CWnd* wnd) { +} + +/*virtual*/ void T2DlgItem::OnT2KillFocus(CWnd* wnd) { +} + +void T2DlgItem::OnTimer(UINT id) { +	OnT2Timer(id); +	CWnd::OnTimer(id); +} + +/*virtual*/ void T2DlgItem::OnT2Timer(UINT id) { +} + +void T2DlgItem::OnClose() { +	OnT2Close(); +	CWnd::OnClose(); +} + +/*virtual*/ void T2DlgItem::OnT2Close() { +} diff --git a/src/T2DLL/T2DlgItem.h b/src/T2DLL/T2DlgItem.h new file mode 100644 index 0000000..ee0ffdf --- /dev/null +++ b/src/T2DLL/T2DlgItem.h @@ -0,0 +1,67 @@ +#pragma once +#include "common.h" +#include "LBroadcaster.h" + +class T2DlgItem : public CWnd, private LBroadcaster { +protected: +	T2DlgItem(); +public: +	T2DlgItem(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItem(); +public: +	virtual BOOL Create(const char* windowName, DWORD style, const RECT& rect, CWnd* parentWnd, UINT nId); +	virtual void SetFont(HFONT font); +	virtual void CreateSubItem(void*); +	virtual void SetValue(int value); +	virtual int GetValue(); +	virtual void GetDescriptor(CString& outStr) const; +	virtual void SetDescriptor(const CString& str); +protected: +	virtual void PostNcDestroy(); +	virtual void DestroySelf(); +	virtual T2BitImage* GetObjectImage(RECT&, const char*, int, int, int, int) const; + +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemLButtonUp(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemRButtonDown(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemRButtonUp(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemMouseMove(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemEnable(int); +	virtual int OnT2DlgItemCreate(CREATESTRUCT*); +	virtual void OnT2Size(UINT nType, int cx, int cy); +	virtual void OnT2SetFocus(CWnd* wnd); +	virtual void OnT2KillFocus(CWnd* wnd); +	virtual void OnT2Timer(UINT id); +	virtual void OnT2Close(); + +	int OnEraseBkgnd(CDC*); +	void OnLButtonDown(UINT nFlags, CPoint pt); +	void OnLButtonUp(UINT nFlags, CPoint pt); +	void OnRButtonDown(UINT nFlags, CPoint pt); +	void OnRButtonUp(UINT nFlags, CPoint pt); +	void OnMouseMove(UINT nFlags, CPoint pt); +	void OnEnable(int); +	int OnCreate(CREATESTRUCT*); +	void Notify(unsigned short, void*); +	void Notify(unsigned short, unsigned short, void*); +	int GetPattern() const; +	void SetPattern(int pattern); +	void OnSize(UINT nType, int cx, int cy); +	void OnSetFocus(CWnd* wnd); +	void OnKillFocus(CWnd* wnd); +	void OnTimer(UINT id); +	void OnClose(); + +	DECLARE_MESSAGE_MAP() + +protected: +	T2TowerDoc *mTowerDoc; +	T2ImageObj *mImageObj; +	CPalette *mPalette; +	int m74; +	HFONT mFont; +	int m7C; +	int mValue; +	int mPattern; +}; diff --git a/src/T2DLL/T2DlgItemAPTable.cpp b/src/T2DLL/T2DlgItemAPTable.cpp new file mode 100644 index 0000000..7e042f2 --- /dev/null +++ b/src/T2DLL/T2DlgItemAPTable.cpp @@ -0,0 +1,31 @@ +#include "T2DlgItemAPTable.h" + +TableCellT T2DlgItemAPTable::GetClickedCell() { +} + +CPoint T2DlgItemAPTable::GetClickPoint() { +} + +/*virtual*/ T2DlgItemAPTable::~T2DlgItemAPTable() { +} + +T2DlgItemAPTable::T2DlgItemAPTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +T2DlgItemAPTable::T2DlgItemAPTable(int, int, int, int, int, T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ void T2DlgItemAPTable::DrawCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemAPTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ void T2DlgItemAPTable::HiliteCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemAPTable::UnhiliteCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemAPTable::ClickCell(const TableCellT&, const POINT&) { +} diff --git a/src/T2DLL/T2DlgItemAPTable.h b/src/T2DLL/T2DlgItemAPTable.h new file mode 100644 index 0000000..3f80516 --- /dev/null +++ b/src/T2DLL/T2DlgItemAPTable.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2DlgItemAPTable { +public: +	TableCellT GetClickedCell(); +	CPoint GetClickPoint(); +	virtual ~T2DlgItemAPTable(); +	T2DlgItemAPTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	T2DlgItemAPTable(int, int, int, int, int, T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual void DrawCell(CDC*, const TableCellT&); +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual void HiliteCell(CDC*, const TableCellT&); +	virtual void UnhiliteCell(CDC*, const TableCellT&); +	virtual void ClickCell(const TableCellT&, const POINT&); +}; diff --git a/src/T2DLL/T2DlgItemAllPurpose.cpp b/src/T2DLL/T2DlgItemAllPurpose.cpp new file mode 100644 index 0000000..ae98b03 --- /dev/null +++ b/src/T2DLL/T2DlgItemAllPurpose.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemAllPurpose.h" + +T2DlgItemAllPurpose::T2DlgItemAllPurpose(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemAllPurpose::~T2DlgItemAllPurpose() { +} + +/*virtual*/ int T2DlgItemAllPurpose::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemRButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemAllPurpose::OnT2DlgItemRButtonUp(unsigned int, CPoint) { +} + +CPoint T2DlgItemAllPurpose::GetUpPoint() { +} + +CPoint T2DlgItemAllPurpose::GetDownPoint() { +} diff --git a/src/T2DLL/T2DlgItemAllPurpose.h b/src/T2DLL/T2DlgItemAllPurpose.h new file mode 100644 index 0000000..3797e11 --- /dev/null +++ b/src/T2DLL/T2DlgItemAllPurpose.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2DlgItemAllPurpose { +public: +	T2DlgItemAllPurpose(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemAllPurpose(); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemRButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemRButtonUp(unsigned int, CPoint); +public: +	CPoint GetUpPoint(); +	CPoint GetDownPoint(); +}; diff --git a/src/T2DLL/T2DlgItemAnimation.cpp b/src/T2DLL/T2DlgItemAnimation.cpp new file mode 100644 index 0000000..ae5ff6b --- /dev/null +++ b/src/T2DLL/T2DlgItemAnimation.cpp @@ -0,0 +1,25 @@ +#include "T2DlgItemAnimation.h" + +T2DlgItemAnimation::T2DlgItemAnimation(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemAnimation::~T2DlgItemAnimation() { +} + +/*virtual*/ int T2DlgItemAnimation::OnT2DlgItemEraseBkgnd(CDC*) { +} + +void T2DlgItemAnimation::SetAnimation(HINSTANCE, int, int) { +} + +void T2DlgItemAnimation::SetAnimationParam(int, int) { +} + +/*virtual*/ int T2DlgItemAnimation::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ void T2DlgItemAnimation::OnT2Close() { +} + +/*virtual*/ void T2DlgItemAnimation::OnT2Timer(unsigned int) { +} diff --git a/src/T2DLL/T2DlgItemAnimation.h b/src/T2DLL/T2DlgItemAnimation.h new file mode 100644 index 0000000..e3ac516 --- /dev/null +++ b/src/T2DLL/T2DlgItemAnimation.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2DlgItemAnimation { +public: +	T2DlgItemAnimation(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemAnimation(); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +public: +	void SetAnimation(HINSTANCE, int, int); +	void SetAnimationParam(int, int); +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +	virtual void OnT2Close(); +	virtual void OnT2Timer(unsigned int); +}; diff --git a/src/T2DLL/T2DlgItemBelongGage.cpp b/src/T2DLL/T2DlgItemBelongGage.cpp new file mode 100644 index 0000000..7553062 --- /dev/null +++ b/src/T2DLL/T2DlgItemBelongGage.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemBelongGage.h" + +T2DlgItemBelongGage::T2DlgItemBelongGage(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemBelongGage::GetMinValue() { +} + +/*virtual*/ int T2DlgItemBelongGage::GetMaxValue() { +} + +/*virtual*/ int T2DlgItemBelongGage::GetValue() { +} + +/*virtual*/ int T2DlgItemBelongGage::GetBlueValue() { +} + +/*virtual*/ int T2DlgItemBelongGage::GetYellowValue() { +} + +/*virtual*/ unsigned long T2DlgItemBelongGage::GetGageColor(int) { +} + +void T2DlgItemBelongGage::SetTenant(T2Tenant*) { +} + +/*virtual*/ int T2DlgItemBelongGage::IsDrawInterior() { +} diff --git a/src/T2DLL/T2DlgItemBelongGage.h b/src/T2DLL/T2DlgItemBelongGage.h new file mode 100644 index 0000000..3080f88 --- /dev/null +++ b/src/T2DLL/T2DlgItemBelongGage.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemBelongGage { +public: +	T2DlgItemBelongGage(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int GetMinValue(); +	virtual int GetMaxValue(); +	virtual int GetValue(); +	virtual int GetBlueValue(); +	virtual int GetYellowValue(); +	virtual unsigned long GetGageColor(int); +public: +	void SetTenant(T2Tenant*); +protected: +	virtual int IsDrawInterior(); + +public: +	virtual ~T2DlgItemBelongGage() {} +}; diff --git a/src/T2DLL/T2DlgItemBox.cpp b/src/T2DLL/T2DlgItemBox.cpp new file mode 100644 index 0000000..f1dfe3b --- /dev/null +++ b/src/T2DLL/T2DlgItemBox.cpp @@ -0,0 +1,7 @@ +#include "T2DlgItemBox.h" + +T2DlgItemBox::T2DlgItemBox(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemBox::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2DlgItemBox.h b/src/T2DLL/T2DlgItemBox.h new file mode 100644 index 0000000..f240321 --- /dev/null +++ b/src/T2DLL/T2DlgItemBox.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2DlgItemBox { +public: +	T2DlgItemBox(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual ~T2DlgItemBox() {} +}; diff --git a/src/T2DLL/T2DlgItemButtonBase.cpp b/src/T2DLL/T2DlgItemButtonBase.cpp new file mode 100644 index 0000000..24fd54c --- /dev/null +++ b/src/T2DLL/T2DlgItemButtonBase.cpp @@ -0,0 +1,16 @@ +#include "T2DlgItemButtonBase.h" + +T2DlgItemButtonBase::T2DlgItemButtonBase(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ void T2DlgItemButtonBase::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemButtonBase::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemButtonBase::OnT2DlgItemMouseMove(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemButtonBase::DrawButtonBase(CDC*, const RECT&, int) { +} diff --git a/src/T2DLL/T2DlgItemButtonBase.h b/src/T2DLL/T2DlgItemButtonBase.h new file mode 100644 index 0000000..cba8156 --- /dev/null +++ b/src/T2DLL/T2DlgItemButtonBase.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2DlgItemButtonBase { +public: +	T2DlgItemButtonBase(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemMouseMove(unsigned int, CPoint); +	virtual void DrawButtonBase(CDC*, const RECT&, int); + +public: +	virtual ~T2DlgItemButtonBase() {} +}; diff --git a/src/T2DLL/T2DlgItemCANCEL.cpp b/src/T2DLL/T2DlgItemCANCEL.cpp new file mode 100644 index 0000000..4c5d193 --- /dev/null +++ b/src/T2DLL/T2DlgItemCANCEL.cpp @@ -0,0 +1,7 @@ +#include "T2DlgItemCANCEL.h" + +T2DlgItemCANCEL::T2DlgItemCANCEL(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemCANCEL::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} diff --git a/src/T2DLL/T2DlgItemCANCEL.h b/src/T2DLL/T2DlgItemCANCEL.h new file mode 100644 index 0000000..a4c4489 --- /dev/null +++ b/src/T2DLL/T2DlgItemCANCEL.h @@ -0,0 +1,10 @@ +#pragma once +#include "common.h" + +class T2DlgItemCANCEL { +public: +	T2DlgItemCANCEL(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); + +	virtual ~T2DlgItemCANCEL() {} +}; diff --git a/src/T2DLL/T2DlgItemCheck.cpp b/src/T2DLL/T2DlgItemCheck.cpp new file mode 100644 index 0000000..a84b9a6 --- /dev/null +++ b/src/T2DLL/T2DlgItemCheck.cpp @@ -0,0 +1,7 @@ +#include "T2DlgItemCheck.h" + +T2DlgItemCheck::T2DlgItemCheck(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemCheck::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} diff --git a/src/T2DLL/T2DlgItemCheck.h b/src/T2DLL/T2DlgItemCheck.h new file mode 100644 index 0000000..856b77b --- /dev/null +++ b/src/T2DLL/T2DlgItemCheck.h @@ -0,0 +1,10 @@ +#pragma once +#include "common.h" + +class T2DlgItemCheck { +public: +	T2DlgItemCheck(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); + +	virtual ~T2DlgItemCheck() {} +}; diff --git a/src/T2DLL/T2DlgItemCustomerGage.cpp b/src/T2DLL/T2DlgItemCustomerGage.cpp new file mode 100644 index 0000000..42cd0a7 --- /dev/null +++ b/src/T2DLL/T2DlgItemCustomerGage.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemCustomerGage.h" + +T2DlgItemCustomerGage::T2DlgItemCustomerGage(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemCustomerGage::GetMinValue() { +} + +/*virtual*/ int T2DlgItemCustomerGage::GetMaxValue() { +} + +/*virtual*/ int T2DlgItemCustomerGage::GetValue() { +} + +/*virtual*/ int T2DlgItemCustomerGage::GetBlueValue() { +} + +/*virtual*/ int T2DlgItemCustomerGage::GetYellowValue() { +} + +/*virtual*/ unsigned long T2DlgItemCustomerGage::GetGageColor(int) { +} + +void T2DlgItemCustomerGage::SetTenant(T2Tenant*) { +} + +/*virtual*/ int T2DlgItemCustomerGage::IsDrawInterior() { +} diff --git a/src/T2DLL/T2DlgItemCustomerGage.h b/src/T2DLL/T2DlgItemCustomerGage.h new file mode 100644 index 0000000..2cb8780 --- /dev/null +++ b/src/T2DLL/T2DlgItemCustomerGage.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemCustomerGage { +public: +	T2DlgItemCustomerGage(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int GetMinValue(); +	virtual int GetMaxValue(); +	virtual int GetValue(); +	virtual int GetBlueValue(); +	virtual int GetYellowValue(); +	virtual unsigned long GetGageColor(int); +public: +	void SetTenant(T2Tenant*); +protected: +	virtual int IsDrawInterior(); + +public: +	virtual ~T2DlgItemCustomerGage() {} +}; diff --git a/src/T2DLL/T2DlgItemEdit.cpp b/src/T2DLL/T2DlgItemEdit.cpp new file mode 100644 index 0000000..f906c49 --- /dev/null +++ b/src/T2DLL/T2DlgItemEdit.cpp @@ -0,0 +1,40 @@ +#include "T2DlgItemEdit.h" + +T2DlgItemEdit::T2DlgItemEdit(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemEdit::~T2DlgItemEdit() { +} + +/*virtual*/ void T2DlgItemEdit::SetFont(HFONT) { +} + +/*virtual*/ void T2DlgItemEdit::CreateSubItem(void*) { +} + +/*virtual*/ int T2DlgItemEdit::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemEdit::GetDescriptor(CString&) const { +} + +/*virtual*/ void T2DlgItemEdit::SetDescriptor(const CString&) { +} + +/*virtual*/ int T2DlgItemEdit::GetValue() { +} + +/*virtual*/ void T2DlgItemEdit::SetValue(int) { +} + +void T2DlgItemEdit::SelectAll() { +} + +/*virtual*/ void T2DlgItemEdit::OnT2SetFocus(CWnd*) { +} + +/*virtual*/ void T2DlgItemEdit::OnT2KillFocus(CWnd*) { +} + +/*virtual*/ void T2DlgItemEdit::OnT2DlgItemEnable(int) { +} diff --git a/src/T2DLL/T2DlgItemEdit.h b/src/T2DLL/T2DlgItemEdit.h new file mode 100644 index 0000000..5553e6e --- /dev/null +++ b/src/T2DLL/T2DlgItemEdit.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemEdit { +public: +	T2DlgItemEdit(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemEdit(); +	virtual void SetFont(HFONT); +	virtual void CreateSubItem(void*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +public: +	virtual void GetDescriptor(CString&) const; +	virtual void SetDescriptor(const CString&); +	virtual int GetValue(); +	virtual void SetValue(int); +	void SelectAll(); +	virtual void OnT2SetFocus(CWnd*); +	virtual void OnT2KillFocus(CWnd*); +	virtual void OnT2DlgItemEnable(int); +}; diff --git a/src/T2DLL/T2DlgItemGageBase.cpp b/src/T2DLL/T2DlgItemGageBase.cpp new file mode 100644 index 0000000..4ef48e2 --- /dev/null +++ b/src/T2DLL/T2DlgItemGageBase.cpp @@ -0,0 +1,19 @@ +#include "T2DlgItemGageBase.h" + +T2DlgItemGageBase::T2DlgItemGageBase(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemGageBase::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemGageBase::DrawInterior(CDC*, const CRect&) { +} + +void T2DlgItemGageBase::DrawBorderLines(CDC*, const CRect&) { +} + +void T2DlgItemGageBase::DrawValueByText(CDC*, const CRect&) { +} + +int T2DlgItemGageBase::CalcPos(const CRect&, int, int, int) { +} diff --git a/src/T2DLL/T2DlgItemGageBase.h b/src/T2DLL/T2DlgItemGageBase.h new file mode 100644 index 0000000..f1e18d8 --- /dev/null +++ b/src/T2DLL/T2DlgItemGageBase.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2DlgItemGageBase { +public: +	T2DlgItemGageBase(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void DrawInterior(CDC*, const CRect&); +	void DrawBorderLines(CDC*, const CRect&); +	void DrawValueByText(CDC*, const CRect&); +	int CalcPos(const CRect&, int, int, int); + +public: +	virtual ~T2DlgItemGageBase() {} +}; diff --git a/src/T2DLL/T2DlgItemHScr.cpp b/src/T2DLL/T2DlgItemHScr.cpp new file mode 100644 index 0000000..e282124 --- /dev/null +++ b/src/T2DLL/T2DlgItemHScr.cpp @@ -0,0 +1,22 @@ +#include "T2DlgItemHScr.h" + +T2DlgItemHScr::T2DlgItemHScr(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemHScr::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ int T2DlgItemHScr::ScrollBarHittest(CPoint) const { +} + +/*virtual*/ void T2DlgItemHScr::GetUpButtonRect(const CRect&, CRect&) const { +} + +/*virtual*/ void T2DlgItemHScr::GetDnButtonRect(const CRect&, CRect&) const { +} + +/*virtual*/ int T2DlgItemHScr::PositionToValue(const CPoint&) const { +} + +/*virtual*/ int T2DlgItemHScr::PositionToValue(const CRect&) const { +} diff --git a/src/T2DLL/T2DlgItemHScr.h b/src/T2DLL/T2DlgItemHScr.h new file mode 100644 index 0000000..010cf80 --- /dev/null +++ b/src/T2DLL/T2DlgItemHScr.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2DlgItemHScr { +public: +	T2DlgItemHScr(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual int ScrollBarHittest(CPoint) const; +	virtual void GetUpButtonRect(const CRect&, CRect&) const; +	virtual void GetDnButtonRect(const CRect&, CRect&) const; +	virtual int PositionToValue(const CPoint&) const; +	virtual int PositionToValue(const CRect&) const; + +public: +	virtual ~T2DlgItemHScr() {} +}; diff --git a/src/T2DLL/T2DlgItemIButton.cpp b/src/T2DLL/T2DlgItemIButton.cpp new file mode 100644 index 0000000..e3bd91f --- /dev/null +++ b/src/T2DLL/T2DlgItemIButton.cpp @@ -0,0 +1,7 @@ +#include "T2DlgItemIButton.h" + +T2DlgItemIButton::T2DlgItemIButton(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemIButton::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2DlgItemIButton.h b/src/T2DLL/T2DlgItemIButton.h new file mode 100644 index 0000000..6529e0b --- /dev/null +++ b/src/T2DLL/T2DlgItemIButton.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2DlgItemIButton { +public: +	T2DlgItemIButton(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual ~T2DlgItemIButton() {} +}; diff --git a/src/T2DLL/T2DlgItemICheck.cpp b/src/T2DLL/T2DlgItemICheck.cpp new file mode 100644 index 0000000..b138e73 --- /dev/null +++ b/src/T2DLL/T2DlgItemICheck.cpp @@ -0,0 +1,22 @@ +#include "T2DlgItemICheck.h" + +T2DlgItemICheck::T2DlgItemICheck(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemICheck::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +/*virtual*/ void T2DlgItemICheck::SetValue(int) { +} + +/*virtual*/ int T2DlgItemICheck::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemICheck::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemICheck::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemICheck::OnT2DlgItemMouseMove(unsigned int, CPoint) { +} diff --git a/src/T2DLL/T2DlgItemICheck.h b/src/T2DLL/T2DlgItemICheck.h new file mode 100644 index 0000000..9c29d3a --- /dev/null +++ b/src/T2DLL/T2DlgItemICheck.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2DlgItemICheck { +public: +	T2DlgItemICheck(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +	virtual void SetValue(int); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemMouseMove(unsigned int, CPoint); + +public: +	virtual ~T2DlgItemICheck() {} +}; diff --git a/src/T2DLL/T2DlgItemImage.cpp b/src/T2DLL/T2DlgItemImage.cpp new file mode 100644 index 0000000..499e1dd --- /dev/null +++ b/src/T2DLL/T2DlgItemImage.cpp @@ -0,0 +1,16 @@ +#include "T2DlgItemImage.h" + +T2DlgItemImage::T2DlgItemImage(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemImage::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +/*virtual*/ int T2DlgItemImage::OnT2DlgItemEraseBkgnd(CDC*) { +} + +void T2DlgItemImage::AdjustSize() { +} + +T2BitImage* T2DlgItemImage::GetDrawImage(CRect&) const { +} diff --git a/src/T2DLL/T2DlgItemImage.h b/src/T2DLL/T2DlgItemImage.h new file mode 100644 index 0000000..96f16c9 --- /dev/null +++ b/src/T2DLL/T2DlgItemImage.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2DlgItemImage { +public: +	T2DlgItemImage(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +public: +	void AdjustSize(); +protected: +	T2BitImage* GetDrawImage(CRect&) const; + +public: +	virtual ~T2DlgItemImage() {} +}; diff --git a/src/T2DLL/T2DlgItemImageTable.cpp b/src/T2DLL/T2DlgItemImageTable.cpp new file mode 100644 index 0000000..a54eb46 --- /dev/null +++ b/src/T2DLL/T2DlgItemImageTable.cpp @@ -0,0 +1,16 @@ +#include "T2DlgItemImageTable.h" + +T2DlgItemImageTable::T2DlgItemImageTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +T2DlgItemImageTable::T2DlgItemImageTable(int, int, int, int, int, T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ void T2DlgItemImageTable::DrawCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemImageTable::HiliteCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemImageTable::UnhiliteCell(CDC*, const TableCellT&) { +} diff --git a/src/T2DLL/T2DlgItemImageTable.h b/src/T2DLL/T2DlgItemImageTable.h new file mode 100644 index 0000000..ab768ba --- /dev/null +++ b/src/T2DLL/T2DlgItemImageTable.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2DlgItemImageTable { +public: +	T2DlgItemImageTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	T2DlgItemImageTable(int, int, int, int, int, T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual void DrawCell(CDC*, const TableCellT&); +	virtual void HiliteCell(CDC*, const TableCellT&); +	virtual void UnhiliteCell(CDC*, const TableCellT&); + +public: +	virtual ~T2DlgItemImageTable() {} +}; diff --git a/src/T2DLL/T2DlgItemListBox.cpp b/src/T2DLL/T2DlgItemListBox.cpp new file mode 100644 index 0000000..d476f33 --- /dev/null +++ b/src/T2DLL/T2DlgItemListBox.cpp @@ -0,0 +1,40 @@ +#include "T2DlgItemListBox.h" + +T2DlgItemListBox::T2DlgItemListBox(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemListBox::~T2DlgItemListBox() { +} + +/*virtual*/ void T2DlgItemListBox::SetFont(HFONT) { +} + +/*virtual*/ void T2DlgItemListBox::CreateSubItem() { +} + +/*virtual*/ int T2DlgItemListBox::GetCount() { +} + +/*virtual*/ int T2DlgItemListBox::ResetContent() { +} + +/*virtual*/ int T2DlgItemListBox::AddString(CString&) { +} + +/*virtual*/ int T2DlgItemListBox::DeleteString(unsigned int) { +} + +/*virtual*/ int T2DlgItemListBox::GetCurSel() { +} + +/*virtual*/ int T2DlgItemListBox::SetItemData(int, unsigned long) { +} + +/*virtual*/ unsigned long T2DlgItemListBox::GetItemData(int) { +} + +/*virtual*/ int T2DlgItemListBox::SetItemDataPtr(int, void*) { +} + +/*virtual*/ void* T2DlgItemListBox::GetItemDataPtr(int) { +} diff --git a/src/T2DLL/T2DlgItemListBox.h b/src/T2DLL/T2DlgItemListBox.h new file mode 100644 index 0000000..ac69209 --- /dev/null +++ b/src/T2DLL/T2DlgItemListBox.h @@ -0,0 +1,19 @@ +#pragma once +#include "common.h" + +class T2DlgItemListBox { +public: +	T2DlgItemListBox(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemListBox(); +	virtual void SetFont(HFONT); +	virtual void CreateSubItem(); +	virtual int GetCount(); +	virtual int ResetContent(); +	virtual int AddString(CString&); +	virtual int DeleteString(unsigned int); +	virtual int GetCurSel(); +	virtual int SetItemData(int, unsigned long); +	virtual unsigned long GetItemData(int); +	virtual int SetItemDataPtr(int, void*); +	virtual void* GetItemDataPtr(int); +}; diff --git a/src/T2DLL/T2DlgItemMovie.cpp b/src/T2DLL/T2DlgItemMovie.cpp new file mode 100644 index 0000000..4644fe2 --- /dev/null +++ b/src/T2DLL/T2DlgItemMovie.cpp @@ -0,0 +1,31 @@ +#include "T2DlgItemMovie.h" + +T2DlgItemMovie::T2DlgItemMovie(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemMovie::~T2DlgItemMovie() { +} + +/*virtual*/ int T2DlgItemMovie::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ int T2DlgItemMovie::OnT2DlgItemEraseBkgnd(CDC*) { +} + +void T2DlgItemMovie::SetStillScreenID(const char*, int) { +} + +void T2DlgItemMovie::SetQTMovieName(CString&) { +} + +void T2DlgItemMovie::PlayMovie(const char*) { +} + +void T2DlgItemMovie::CloseMovie() { +} + +/*virtual*/ long T2DlgItemMovie::WindowProc(unsigned int, unsigned int, long) { +} + +/*virtual*/ void T2DlgItemMovie::OnT2Close() { +} diff --git a/src/T2DLL/T2DlgItemMovie.h b/src/T2DLL/T2DlgItemMovie.h new file mode 100644 index 0000000..48b8dd7 --- /dev/null +++ b/src/T2DLL/T2DlgItemMovie.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemMovie { +public: +	T2DlgItemMovie(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemMovie(); +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +public: +	void SetStillScreenID(const char*, int); +	void SetQTMovieName(CString&); +protected: +	void PlayMovie(const char*); +	void CloseMovie(); +public: +	virtual long WindowProc(unsigned int, unsigned int, long); +protected: +	virtual void OnT2Close(); +}; diff --git a/src/T2DLL/T2DlgItemOK.cpp b/src/T2DLL/T2DlgItemOK.cpp new file mode 100644 index 0000000..287d992 --- /dev/null +++ b/src/T2DLL/T2DlgItemOK.cpp @@ -0,0 +1,7 @@ +#include "T2DlgItemOK.h" + +T2DlgItemOK::T2DlgItemOK(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemOK::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} diff --git a/src/T2DLL/T2DlgItemOK.h b/src/T2DLL/T2DlgItemOK.h new file mode 100644 index 0000000..4296ec1 --- /dev/null +++ b/src/T2DLL/T2DlgItemOK.h @@ -0,0 +1,10 @@ +#pragma once +#include "common.h" + +class T2DlgItemOK { +public: +	T2DlgItemOK(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); + +	virtual ~T2DlgItemOK() {} +}; diff --git a/src/T2DLL/T2DlgItemPPLEvalGage.cpp b/src/T2DLL/T2DlgItemPPLEvalGage.cpp new file mode 100644 index 0000000..27e821b --- /dev/null +++ b/src/T2DLL/T2DlgItemPPLEvalGage.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemPPLEvalGage.h" + +T2DlgItemPPLEvalGage::T2DlgItemPPLEvalGage(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemPPLEvalGage::GetMinValue() { +} + +/*virtual*/ int T2DlgItemPPLEvalGage::GetMaxValue() { +} + +/*virtual*/ int T2DlgItemPPLEvalGage::GetValue() { +} + +/*virtual*/ int T2DlgItemPPLEvalGage::GetBlueValue() { +} + +/*virtual*/ int T2DlgItemPPLEvalGage::GetYellowValue() { +} + +void T2DlgItemPPLEvalGage::SetPeople(T2People*) { +} + +/*virtual*/ unsigned long T2DlgItemPPLEvalGage::GetGageColor(int) { +} + +/*virtual*/ int T2DlgItemPPLEvalGage::IsDrawInterior() { +} diff --git a/src/T2DLL/T2DlgItemPPLEvalGage.h b/src/T2DLL/T2DlgItemPPLEvalGage.h new file mode 100644 index 0000000..fc61f9b --- /dev/null +++ b/src/T2DLL/T2DlgItemPPLEvalGage.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemPPLEvalGage { +public: +	T2DlgItemPPLEvalGage(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int GetMinValue(); +	virtual int GetMaxValue(); +	virtual int GetValue(); +	virtual int GetBlueValue(); +	virtual int GetYellowValue(); +public: +	void SetPeople(T2People*); +protected: +	virtual unsigned long GetGageColor(int); +	virtual int IsDrawInterior(); + +public: +	virtual ~T2DlgItemPPLEvalGage() {} +}; diff --git a/src/T2DLL/T2DlgItemPeopleView.cpp b/src/T2DLL/T2DlgItemPeopleView.cpp new file mode 100644 index 0000000..ff64ccc --- /dev/null +++ b/src/T2DLL/T2DlgItemPeopleView.cpp @@ -0,0 +1,49 @@ +#include "T2DlgItemPeopleView.h" + +T2DlgItemPeopleView::T2DlgItemPeopleView(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemPeopleView::~T2DlgItemPeopleView() { +} + +/*virtual*/ int T2DlgItemPeopleView::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +/*virtual*/ int T2DlgItemPeopleView::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ int T2DlgItemPeopleView::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemPeopleView::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemPeopleView::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemPeopleView::OnT2DlgItemRButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemPeopleView::OnT2DlgItemRButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemPeopleView::OnT2DlgItemMouseMove(unsigned int, CPoint) { +} + +void T2DlgItemPeopleView::SetMouseCursor(unsigned int) { +} + +/*virtual*/ int T2DlgItemPeopleView::OnCommand(unsigned int, long) { +} + +void T2DlgItemPeopleView::SetPeople(T2People*) { +} + +void T2DlgItemPeopleView::StartAdd() { +} + +void T2DlgItemPeopleView::FinishAdd() { +} + +void T2DlgItemPeopleView::AddOne(T2People*) { +} diff --git a/src/T2DLL/T2DlgItemPeopleView.h b/src/T2DLL/T2DlgItemPeopleView.h new file mode 100644 index 0000000..baed885 --- /dev/null +++ b/src/T2DLL/T2DlgItemPeopleView.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2DlgItemPeopleView { +public: +	T2DlgItemPeopleView(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemPeopleView(); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemRButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemRButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemMouseMove(unsigned int, CPoint); +	void SetMouseCursor(unsigned int); +	virtual int OnCommand(unsigned int, long); +public: +	void SetPeople(T2People*); +	void StartAdd(); +	void FinishAdd(); +	void AddOne(T2People*); +}; diff --git a/src/T2DLL/T2DlgItemPopup.cpp b/src/T2DLL/T2DlgItemPopup.cpp new file mode 100644 index 0000000..97129b7 --- /dev/null +++ b/src/T2DLL/T2DlgItemPopup.cpp @@ -0,0 +1,25 @@ +#include "T2DlgItemPopup.h" + +T2DlgItemPopup::T2DlgItemPopup(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemPopup::~T2DlgItemPopup() { +} + +/*virtual*/ int T2DlgItemPopup::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ int T2DlgItemPopup::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemPopup::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemPopup::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ int T2DlgItemPopup::OnCommand(unsigned int, long) { +} + +void T2DlgItemPopup::AppendItem(const CString&) { +} diff --git a/src/T2DLL/T2DlgItemPopup.h b/src/T2DLL/T2DlgItemPopup.h new file mode 100644 index 0000000..8b95cb2 --- /dev/null +++ b/src/T2DLL/T2DlgItemPopup.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2DlgItemPopup { +public: +	T2DlgItemPopup(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemPopup(); +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual int OnCommand(unsigned int, long); +public: +	void AppendItem(const CString&); +}; diff --git a/src/T2DLL/T2DlgItemProfitsGage.cpp b/src/T2DLL/T2DlgItemProfitsGage.cpp new file mode 100644 index 0000000..9479e65 --- /dev/null +++ b/src/T2DLL/T2DlgItemProfitsGage.cpp @@ -0,0 +1,34 @@ +#include "T2DlgItemProfitsGage.h" + +T2DlgItemProfitsGage::T2DlgItemProfitsGage(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +void T2DlgItemProfitsGage::CalcCost() { +} + +/*virtual*/ int T2DlgItemProfitsGage::GetMinValue() { +} + +/*virtual*/ int T2DlgItemProfitsGage::GetMaxValue() { +} + +/*virtual*/ int T2DlgItemProfitsGage::GetValue() { +} + +/*virtual*/ int T2DlgItemProfitsGage::GetBlueValue() { +} + +/*virtual*/ int T2DlgItemProfitsGage::GetYellowValue() { +} + +/*virtual*/ unsigned long T2DlgItemProfitsGage::GetGageColor(int) { +} + +void T2DlgItemProfitsGage::SetTenant(T2Tenant*) { +} + +/*virtual*/ void T2DlgItemProfitsGage::DrawInterior(CDC*, const CRect&) { +} + +/*virtual*/ int T2DlgItemProfitsGage::IsDrawInterior() { +} diff --git a/src/T2DLL/T2DlgItemProfitsGage.h b/src/T2DLL/T2DlgItemProfitsGage.h new file mode 100644 index 0000000..6b555b7 --- /dev/null +++ b/src/T2DLL/T2DlgItemProfitsGage.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" + +class T2DlgItemProfitsGage { +public: +	T2DlgItemProfitsGage(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	void CalcCost(); +	virtual int GetMinValue(); +	virtual int GetMaxValue(); +	virtual int GetValue(); +	virtual int GetBlueValue(); +	virtual int GetYellowValue(); +	virtual unsigned long GetGageColor(int); +public: +	void SetTenant(T2Tenant*); +protected: +	virtual void DrawInterior(CDC*, const CRect&); +	virtual int IsDrawInterior(); + +public: +	virtual ~T2DlgItemProfitsGage() {} +}; diff --git a/src/T2DLL/T2DlgItemProgress.cpp b/src/T2DLL/T2DlgItemProgress.cpp new file mode 100644 index 0000000..75bf2ac --- /dev/null +++ b/src/T2DLL/T2DlgItemProgress.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemProgress.h" + +T2DlgItemProgress::T2DlgItemProgress(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemProgress::~T2DlgItemProgress() { +} + +/*virtual*/ void T2DlgItemProgress::SetFont(HFONT) { +} + +/*virtual*/ void T2DlgItemProgress::CreateSubItem() { +} + +/*virtual*/ void T2DlgItemProgress::SetRange(int, int) { +} + +/*virtual*/ int T2DlgItemProgress::SetPos(int) { +} + +/*virtual*/ int T2DlgItemProgress::OffsetPos(int) { +} + +/*virtual*/ int T2DlgItemProgress::SetStep(int) { +} + +/*virtual*/ int T2DlgItemProgress::StepIt() { +} diff --git a/src/T2DLL/T2DlgItemProgress.h b/src/T2DLL/T2DlgItemProgress.h new file mode 100644 index 0000000..7f35b86 --- /dev/null +++ b/src/T2DLL/T2DlgItemProgress.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2DlgItemProgress { +public: +	T2DlgItemProgress(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemProgress(); +	virtual void SetFont(HFONT); +	virtual void CreateSubItem(); +	virtual void SetRange(int, int); +	virtual int SetPos(int); +	virtual int OffsetPos(int); +	virtual int SetStep(int); +	virtual int StepIt(); +}; diff --git a/src/T2DLL/T2DlgItemSTimeTbl.cpp b/src/T2DLL/T2DlgItemSTimeTbl.cpp new file mode 100644 index 0000000..a837aa5 --- /dev/null +++ b/src/T2DLL/T2DlgItemSTimeTbl.cpp @@ -0,0 +1,19 @@ +#include "T2DlgItemSTimeTbl.h" + +T2DlgItemSTimeTbl::T2DlgItemSTimeTbl(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemSTimeTbl::~T2DlgItemSTimeTbl() { +} + +/*virtual*/ int T2DlgItemSTimeTbl::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +void T2DlgItemSTimeTbl::SetGrade(int) { +} + +/*virtual*/ int T2DlgItemSTimeTbl::OnT2DlgItemEraseBkgnd(CDC*) { +} + +void T2DlgItemSTimeTbl::DrawTime(CDC*, unsigned int, int, CRect&) { +} diff --git a/src/T2DLL/T2DlgItemSTimeTbl.h b/src/T2DLL/T2DlgItemSTimeTbl.h new file mode 100644 index 0000000..c4c65e6 --- /dev/null +++ b/src/T2DLL/T2DlgItemSTimeTbl.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2DlgItemSTimeTbl { +public: +	T2DlgItemSTimeTbl(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemSTimeTbl(); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +	void SetGrade(int); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +private: +	void DrawTime(CDC*, unsigned int, int, CRect&); +}; diff --git a/src/T2DLL/T2DlgItemScr.cpp b/src/T2DLL/T2DlgItemScr.cpp new file mode 100644 index 0000000..692c9a6 --- /dev/null +++ b/src/T2DLL/T2DlgItemScr.cpp @@ -0,0 +1,183 @@ +#include "T2DlgItemScr.h" + +T2DlgItemScr::T2DlgItemScr(T2TowerDoc* towerDoc, T2ImageObj* imageObj, CPalette* palette) +	: T2DlgItem(towerDoc, imageObj, palette) +{ +	mUpImage = 200; +	mDownImage = 200; +	mValue = 0; +	mRange = 0; +	mPage = 0; +	mMouseDownPoint = CPoint(0, 0); +	mClickedArea = 0; +} + +/*virtual*/ void T2DlgItemScr::SetPage(int page) { +	mPage = page; +	if (!IsScrollable() && mValue != 0) { +		mValue = 0; +		Notify(GetDlgCtrlID(), 0, &mValue); +	} +	Invalidate(); +} + +/*virtual*/ void T2DlgItemScr::SetRange(int range) { +	mRange = range; +	if (!IsScrollable() && mValue != 0) { +		mValue = 0; +		Notify(GetDlgCtrlID(), 0, &mValue); +	} +	Invalidate(); +} + +/*virtual*/ void T2DlgItemScr::SetValue(int value) { +	if (!IsScrollable()) +		value = 0; + +	if (mValue != value) { +		mValue = value; +		Notify(GetDlgCtrlID(), 0, &mValue); +		Invalidate(); +	} +} + +/*virtual*/ void T2DlgItemScr::OnT2DlgItemLButtonDown(UINT nFlags, CPoint pt) { +	SetCapture(); +	m74 = true; +	mTimerID = 0; +	mClickedArea = ScrollBarHittest(pt); + +	if (mClickedArea != 0) { +		if (mClickedArea == Area_SetAbsolute) { +			mMouseDownPoint = pt; +			mMouseDownValue = mValue; +		} else { +			if (mClickedArea == Area_Up) +				mUpImage = 100; +			else if (mClickedArea == Area_Down) +				mDownImage = 100; + +			ScrollBarAction(mClickedArea, 0); +			if (mClickedArea == Area_Up || mClickedArea == Area_Down) +				mTimerID = SetTimer(999, 100, NULL); +		} +	} +} + +/*virtual*/ void T2DlgItemScr::OnT2DlgItemLButtonUp(UINT nFlags, CPoint pt) { +	if (mClickedArea && mTimerID) +		KillTimer(mTimerID); + +	ReleaseCapture(); +	m74 = false; +	mUpImage = 0; +	mDownImage = 0; +	mClickedArea = 0; +	Invalidate(); +} + +/*virtual*/ void T2DlgItemScr::OnT2DlgItemMouseMove(UINT nFlags, CPoint pt) { +	if (mClickedArea) { +		CRect clientRect; +		GetClientRect(clientRect); + +		switch (mClickedArea) { +			case Area_SetAbsolute: { +				int a, b; +				clientRect.DeflateRect(0, 16); +				CalcScrollBarThumb(&a, &b); + +				int val = PositionToValue(clientRect) - b; +				if (val == 0) +					val = 1; + +				ScrollBarAction( +					Area_SetAbsolute, +					mMouseDownValue + ((PositionToValue(pt) - PositionToValue(mMouseDownPoint)) * (mRange - mPage)) / val +				); +				break; +			} +			case Area_Up: { +				CRect upButtonRect; +				GetUpButtonRect(clientRect, upButtonRect); +				BOOL inUpButton = upButtonRect.PtInRect(pt); +				if (inUpButton != m74) { +					m74 = inUpButton; +					mUpImage = m74 ? 100 : 0; +					InvalidateRect(upButtonRect); +				} +				break; +			} +			case Area_Down: { +				CRect downButtonRect; +				GetDnButtonRect(clientRect, downButtonRect); +				BOOL inDownButton = downButtonRect.PtInRect(pt); +				if (inDownButton != m74) { +					m74 = inDownButton; +					mDownImage = m74 ? 100 : 0; +					InvalidateRect(downButtonRect); +				} +				break; +			} +		} +	} +} + +void T2DlgItemScr::CalcScrollBarThumb(int* a, int* b) const { +	if (!IsScrollable()) { +		*a = 16; +		*b = 0; +	} else { +		CRect clientRect; +		GetClientRect(clientRect); + +		int value = PositionToValue(clientRect); +		value -= 32; + +		*b = (value * mPage) / mRange; +		if (*b < 10) +			*b = 10; +		*a = (((value - *b) * mValue) / (mRange - mPage)) + 16; +	} +} + +void T2DlgItemScr::ScrollBarAction(int area, int arg) { +	if (!IsScrollable()) { +		mValue = 0; +	} else { +		switch (area) { +			case Area_Up: +				mValue--; +				break; +			case Area_PageUp: +				mValue -= mPage / 2; +				break; +			case Area_SetAbsolute: +				mValue = arg; +				break; +			case Area_PageDown: +				mValue += mPage / 2; +				break; +			case Area_Down: +				mValue++; +				break; +		} + +		if (mValue < 0) +			mValue = 0; +		if (mValue > (mRange - mPage)) +			mValue = mRange - mPage; +	} + +	Notify(GetDlgCtrlID(), 0, &mValue); +	Invalidate(); +} + +BOOL T2DlgItemScr::IsScrollable() const { +	return (mRange > 0) && (mPage < mRange); +} + +/*virtual*/ void T2DlgItemScr::OnT2Timer(UINT id) { +	if (id == mTimerID && m74 && (mClickedArea == Area_Up || mClickedArea == Area_Down)) +		ScrollBarAction(mClickedArea, 0); +} diff --git a/src/T2DLL/T2DlgItemScr.h b/src/T2DLL/T2DlgItemScr.h new file mode 100644 index 0000000..55698bb --- /dev/null +++ b/src/T2DLL/T2DlgItemScr.h @@ -0,0 +1,45 @@ +#pragma once +#include "common.h" +#include "T2DlgItem.h" + +class DLL_EXPORT T2DlgItemScr : public T2DlgItem { +public: +	T2DlgItemScr(T2TowerDoc* towerDoc, T2ImageObj* imageObj, CPalette* palette); +	virtual void SetValue(int); + +	virtual void SetPage(int); +	virtual void SetRange(int); + +	enum { +		Area_Up = 1, +		Area_PageUp = 2, +		Area_SetAbsolute = 3, +		Area_PageDown = 4, +		Area_Down = 5 +	}; + +protected: +	virtual void OnT2DlgItemLButtonDown(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemLButtonUp(UINT nFlags, CPoint pt); +	virtual void OnT2DlgItemMouseMove(UINT nFlags, CPoint pt); +	virtual void OnT2Timer(UINT id); + +	virtual int ScrollBarHittest(CPoint) const = 0; +	virtual void GetUpButtonRect(const CRect&, CRect&) const = 0; +	virtual void GetDnButtonRect(const CRect&, CRect&) const = 0; +	virtual int PositionToValue(const CPoint&) const = 0; +	virtual int PositionToValue(const CRect&) const = 0; + +	void CalcScrollBarThumb(int*, int*) const; +	void ScrollBarAction(int, int); +	BOOL IsScrollable() const; + +	int mUpImage; +	int mDownImage; +	int mRange; +	int mPage; +	CPoint mMouseDownPoint; +	int mMouseDownValue; +	int mClickedArea; +	UINT mTimerID; +}; diff --git a/src/T2DLL/T2DlgItemStressGage.cpp b/src/T2DLL/T2DlgItemStressGage.cpp new file mode 100644 index 0000000..098f8fb --- /dev/null +++ b/src/T2DLL/T2DlgItemStressGage.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemStressGage.h" + +T2DlgItemStressGage::T2DlgItemStressGage(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemStressGage::GetMinValue() { +} + +/*virtual*/ int T2DlgItemStressGage::GetMaxValue() { +} + +/*virtual*/ int T2DlgItemStressGage::GetValue() { +} + +/*virtual*/ int T2DlgItemStressGage::GetBlueValue() { +} + +/*virtual*/ int T2DlgItemStressGage::GetYellowValue() { +} + +void T2DlgItemStressGage::SetPeople(T2People*) { +} + +/*virtual*/ unsigned long T2DlgItemStressGage::GetGageColor(int) { +} + +/*virtual*/ int T2DlgItemStressGage::IsDrawInterior() { +} diff --git a/src/T2DLL/T2DlgItemStressGage.h b/src/T2DLL/T2DlgItemStressGage.h new file mode 100644 index 0000000..8e90fa0 --- /dev/null +++ b/src/T2DLL/T2DlgItemStressGage.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemStressGage { +public: +	T2DlgItemStressGage(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int GetMinValue(); +	virtual int GetMaxValue(); +	virtual int GetValue(); +	virtual int GetBlueValue(); +	virtual int GetYellowValue(); +public: +	void SetPeople(T2People*); +protected: +	virtual unsigned long GetGageColor(int); +	virtual int IsDrawInterior(); + +public: +	virtual ~T2DlgItemStressGage() {} +}; diff --git a/src/T2DLL/T2DlgItemTButton.cpp b/src/T2DLL/T2DlgItemTButton.cpp new file mode 100644 index 0000000..e81b41d --- /dev/null +++ b/src/T2DLL/T2DlgItemTButton.cpp @@ -0,0 +1,7 @@ +#include "T2DlgItemTButton.h" + +T2DlgItemTButton::T2DlgItemTButton(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ int T2DlgItemTButton::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2DlgItemTButton.h b/src/T2DLL/T2DlgItemTButton.h new file mode 100644 index 0000000..3b79f2c --- /dev/null +++ b/src/T2DLL/T2DlgItemTButton.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2DlgItemTButton { +public: +	T2DlgItemTButton(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual ~T2DlgItemTButton() {} +}; diff --git a/src/T2DLL/T2DlgItemTab.cpp b/src/T2DLL/T2DlgItemTab.cpp new file mode 100644 index 0000000..f9989b0 --- /dev/null +++ b/src/T2DLL/T2DlgItemTab.cpp @@ -0,0 +1,22 @@ +#include "T2DlgItemTab.h" + +T2DlgItemTab::T2DlgItemTab(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemTab::~T2DlgItemTab() { +} + +/*virtual*/ int T2DlgItemTab::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ void T2DlgItemTab::SetFont(HFONT) { +} + +/*virtual*/ void T2DlgItemTab::CreateSubItem(void*) { +} + +/*virtual*/ int T2DlgItemTab::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ long T2DlgItemTab::WindowProc(unsigned int, unsigned int, long) { +} diff --git a/src/T2DLL/T2DlgItemTab.h b/src/T2DLL/T2DlgItemTab.h new file mode 100644 index 0000000..234cd0a --- /dev/null +++ b/src/T2DLL/T2DlgItemTab.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2DlgItemTab { +public: +	T2DlgItemTab(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2DlgItemTab(); +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +	virtual void SetFont(HFONT); +	virtual void CreateSubItem(void*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +public: +	virtual long WindowProc(unsigned int, unsigned int, long); +}; diff --git a/src/T2DLL/T2DlgItemTable.cpp b/src/T2DLL/T2DlgItemTable.cpp new file mode 100644 index 0000000..a550c75 --- /dev/null +++ b/src/T2DLL/T2DlgItemTable.cpp @@ -0,0 +1,172 @@ +#include "T2DlgItemTable.h" + +T2DlgItemTable::T2DlgItemTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +T2DlgItemTable::T2DlgItemTable(int, int, int, int, int, T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2DlgItemTable::~T2DlgItemTable() { +} + +void T2DlgItemTable::InitTable(int, int, int, int, int) { +} + +/*virtual*/ int T2DlgItemTable::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +/*virtual*/ int T2DlgItemTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +void T2DlgItemTable::GetTableSize(unsigned int&, unsigned int&) const { +} + +int T2DlgItemTable::IsMultiSelectable() const { +} + +void T2DlgItemTable::EnableMultiSelect(int) { +} + +/*virtual*/ void T2DlgItemTable::ClearSelectedCells() { +} + +int T2DlgItemTable::IsValidCell(const TableCellT&) const { +} + +int T2DlgItemTable::EqualCell(const TableCellT&, const TableCellT&) const { +} + +/*virtual*/ void T2DlgItemTable::InsertRows(int, unsigned int, void*) { +} + +/*virtual*/ void T2DlgItemTable::InsertCols(int, unsigned int, void*) { +} + +/*virtual*/ void T2DlgItemTable::RemoveRows(int, unsigned int) { +} + +/*virtual*/ void T2DlgItemTable::RemoveCols(int, unsigned int) { +} + +/*virtual*/ void T2DlgItemTable::SetRowHeight(int, unsigned int, unsigned int) { +} + +/*virtual*/ void T2DlgItemTable::SetColWidth(int, unsigned int, unsigned int) { +} + +void T2DlgItemTable::SetCellDataSize(int) { +} + +/*virtual*/ void T2DlgItemTable::SetCellData(const TableCellT&, void*) { +} + +/*virtual*/ void T2DlgItemTable::GetCellData(const TableCellT&, void*) { +} + +/*virtual*/ int T2DlgItemTable::FetchLocalCellFrame(const TableCellT&, RECT&) { +} + +/*virtual*/ void T2DlgItemTable::FetchCellHitBy(const POINT&, TableCellT&) { +} + +int T2DlgItemTable::FetchCellDataIndex(const TableCellT&) { +} + +/*virtual*/ void T2DlgItemTable::ClickSelf(const POINT&, unsigned int) { +} + +/*virtual*/ int T2DlgItemTable::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2DlgItemTable::HiliteCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemTable::UnhiliteCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemTable::HiliteCells(CDC*, LArrayIterator&) { +} + +/*virtual*/ void T2DlgItemTable::UnhiliteCells(CDC*, LArrayIterator&) { +} + +/*virtual*/ void T2DlgItemTable::ClickCell(const TableCellT&, const POINT&) { +} + +/*virtual*/ void T2DlgItemTable::DrawCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2DlgItemTable::SelectCell(const TableCellT&) { +} + +/*virtual*/ void T2DlgItemTable::ToggleCell(const TableCellT&) { +} + +int T2DlgItemTable::IsSelected(const TableCellT&) const { +} + +void T2DlgItemTable::GetSelectedCell(TableCellT&) const { +} + +void T2DlgItemTable::InvalidateCell(const TableCellT&) { +} + +int T2DlgItemTable::Resized() { +} + +void T2DlgItemTable::ViewToClient(POINT*, int) { +} + +void T2DlgItemTable::ClientToView(POINT*, int) { +} + +/*virtual*/ void T2DlgItemTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemTable::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2DlgItemTable::OnT2DlgItemMouseMove(unsigned int, CPoint) { +} + +/*virtual*/ int T2DlgItemTable::OnCommand(unsigned int, long) { +} + +/*virtual*/ void T2DlgItemTable::OnT2Size(unsigned int, int, int) { +} + +void T2DlgItemTable::DoScroll() { +} + +/*virtual*/ void T2DlgItemTable::ListenToMessage(unsigned int, void*) { +} + +T2DlgItemHScr* T2DlgItemTable::GetHScroller() const { +} + +T2DlgItemVScr* T2DlgItemTable::GetVScroller() const { +} + +void T2DlgItemTable::AttachHScroller(T2DlgItemHScr*, int) { +} + +void T2DlgItemTable::AttachVScroller(T2DlgItemVScr*, int) { +} + +void T2DlgItemTable::SetHScrollerStyle(T2DlgItemTable::ScrollerStyle) { +} + +void T2DlgItemTable::SetVScrollerStyle(T2DlgItemTable::ScrollerStyle) { +} + +int T2DlgItemTable::IsOwnHScroller() const { +} + +int T2DlgItemTable::IsOwnVScroller() const { +} + +TableCellIterator::TableCellIterator(const TableCellT&, const TableCellT&) { +} + +int TableCellIterator::Next(TableCellT&) { +} diff --git a/src/T2DLL/T2DlgItemTable.h b/src/T2DLL/T2DlgItemTable.h new file mode 100644 index 0000000..577fb52 --- /dev/null +++ b/src/T2DLL/T2DlgItemTable.h @@ -0,0 +1,81 @@ +#pragma once +#include "common.h" +#include "LListener.h" +#include "T2DlgItem.h" + +class DLL_EXPORT T2DlgItemTable : public T2DlgItem, public LListener { +public: +	enum ScrollerStyle { +		ScrollerStyle_0 +	}; + +	T2DlgItemTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	T2DlgItemTable(int, int, int, int, int, T2TowerDoc*, T2ImageObj*, CPalette*); + +	virtual ~T2DlgItemTable(); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +	virtual void InsertRows(int, unsigned int, void*); +	virtual void InsertCols(int, unsigned int, void*); +	virtual void RemoveRows(int, unsigned int); +	virtual void RemoveCols(int, unsigned int); +	virtual void SetRowHeight(int, unsigned int, unsigned int); +	virtual void SetColWidth(int, unsigned int, unsigned int); +	virtual void SetCellData(const TableCellT&, void*); +	virtual void GetCellData(const TableCellT&, void*); +	virtual void SelectCell(const TableCellT&); +	virtual void ToggleCell(const TableCellT&); +	virtual void ClearSelectedCells(); + +	void GetTableSize(unsigned int&, unsigned int&) const; +	int IsMultiSelectable() const; +	void EnableMultiSelect(int); +	int IsValidCell(const TableCellT&) const; +	int EqualCell(const TableCellT&, const TableCellT&) const; +	void SetCellDataSize(int); +	int IsSelected(const TableCellT&) const; +	void GetSelectedCell(TableCellT&) const; +	virtual void ListenToMessage(unsigned int, void*); +	T2DlgItemHScr* GetHScroller() const; +	T2DlgItemVScr* GetVScroller() const; +	void AttachHScroller(T2DlgItemHScr*, int); +	void AttachVScroller(T2DlgItemVScr*, int); +	void SetHScrollerStyle(ScrollerStyle); +	void SetVScrollerStyle(ScrollerStyle); + +protected: +	virtual int OnCommand(unsigned int, long); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(UINT, CPoint); +	virtual void OnT2DlgItemLButtonUp(UINT, CPoint); +	virtual void OnT2DlgItemMouseMove(UINT, CPoint); +	virtual int OnT2DlgItemCreate(CREATESTRUCT*); +	virtual void OnT2Size(unsigned int, int, int); + +	virtual void ClickSelf(const POINT&, unsigned int); +	virtual void HiliteCells(CDC*, LArrayIterator&); +	virtual void UnhiliteCells(CDC*, LArrayIterator&); +	virtual void HiliteCell(CDC*, const TableCellT&); +	virtual void UnhiliteCell(CDC*, const TableCellT&); +	virtual void ClickCell(const TableCellT&, const POINT&); +	virtual void DrawCell(CDC*, const TableCellT&); +	virtual int FetchLocalCellFrame(const TableCellT&, RECT&); +	virtual void FetchCellHitBy(const POINT&, TableCellT&); + +	int FetchCellDataIndex(const TableCellT&); +	void InvalidateCell(const TableCellT&); +	void ViewToClient(POINT*, int); +	void ClientToView(POINT*, int); +	void DoScroll(); +	int IsOwnHScroller() const; +	int IsOwnVScroller() const; + +private: +	void InitTable(int, int, int, int, int); +	int Resized(); +}; + +class DLL_EXPORT TableCellIterator { +public: +	TableCellIterator(const TableCellT&, const TableCellT&); +	int Next(TableCellT&); +}; diff --git a/src/T2DLL/T2DlgItemText.cpp b/src/T2DLL/T2DlgItemText.cpp new file mode 100644 index 0000000..71f9242 --- /dev/null +++ b/src/T2DLL/T2DlgItemText.cpp @@ -0,0 +1,28 @@ +#include "T2DlgItemText.h" + +T2DlgItemText::T2DlgItemText(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +void T2DlgItemText::SetTextColor(unsigned long) { +} + +/*virtual*/ void T2DlgItemText::GetDescriptor(CString&) const { +} + +/*virtual*/ void T2DlgItemText::SetDescriptor(const CString&) { +} + +/*virtual*/ int T2DlgItemText::OnT2DlgItemEraseBkgnd(CDC*) { +} + +char T2DlgItemText::GetJustification() const { +} + +void T2DlgItemText::GetContentText(CString&) const { +} + +void T2DlgItemText::InfoDialogMessage(CString&, long) { +} + +/*virtual*/ void T2DlgItemText::OnT2Timer(unsigned int) { +} diff --git a/src/T2DLL/T2DlgItemText.h b/src/T2DLL/T2DlgItemText.h new file mode 100644 index 0000000..83fa1f6 --- /dev/null +++ b/src/T2DLL/T2DlgItemText.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2DlgItemText { +public: +	T2DlgItemText(T2TowerDoc*, T2ImageObj*, CPalette*); +	void SetTextColor(unsigned long); +	virtual void GetDescriptor(CString&) const; +	virtual void SetDescriptor(const CString&); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	char GetJustification() const; +	void GetContentText(CString&) const; +public: +	void InfoDialogMessage(CString&, long); +protected: +	virtual void OnT2Timer(unsigned int); + +public: +	virtual ~T2DlgItemText() {} +}; diff --git a/src/T2DLL/T2DlgItemVScr.cpp b/src/T2DLL/T2DlgItemVScr.cpp new file mode 100644 index 0000000..3b4b55a --- /dev/null +++ b/src/T2DLL/T2DlgItemVScr.cpp @@ -0,0 +1,24 @@ +#include "T2DlgItemVScr.h" + +T2DlgItemVScr::T2DlgItemVScr(T2TowerDoc* towerDoc, T2ImageObj* imageObj, CPalette* palette) +	: T2DlgItemScr(towerDoc, imageObj, palette) +{ +} + +/*virtual*/ int T2DlgItemVScr::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ int T2DlgItemVScr::ScrollBarHittest(CPoint) const { +} + +/*virtual*/ void T2DlgItemVScr::GetUpButtonRect(const CRect&, CRect&) const { +} + +/*virtual*/ void T2DlgItemVScr::GetDnButtonRect(const CRect&, CRect&) const { +} + +/*virtual*/ int T2DlgItemVScr::PositionToValue(const CPoint&) const { +} + +/*virtual*/ int T2DlgItemVScr::PositionToValue(const CRect&) const { +} diff --git a/src/T2DLL/T2DlgItemVScr.h b/src/T2DLL/T2DlgItemVScr.h new file mode 100644 index 0000000..4b44052 --- /dev/null +++ b/src/T2DLL/T2DlgItemVScr.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" +#include "T2DlgItemScr.h" + +class DLL_EXPORT T2DlgItemVScr : public T2DlgItemScr { +public: +	T2DlgItemVScr(T2TowerDoc*, T2ImageObj*, CPalette*); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual int ScrollBarHittest(CPoint) const; +	virtual void GetUpButtonRect(const CRect&, CRect&) const; +	virtual void GetDnButtonRect(const CRect&, CRect&) const; +	virtual int PositionToValue(const CPoint&) const; +	virtual int PositionToValue(const CRect&) const; +}; diff --git a/src/T2DLL/T2DrawableObject.cpp b/src/T2DLL/T2DrawableObject.cpp new file mode 100644 index 0000000..5775da7 --- /dev/null +++ b/src/T2DLL/T2DrawableObject.cpp @@ -0,0 +1,38 @@ +#include "T2DrawableObject.h" +#include "T2InfoDialog.h" + +T2DrawableObject::T2DrawableObject() { +} + +/*virtual*/ T2DrawableObject::~T2DrawableObject() { +} + +/*virtual*/ void T2DrawableObject::Draw(T2TowerDoc* towerDoc, const RECT& rect) { +	DrawSelf(towerDoc, rect); +} + +/*virtual*/ void T2DrawableObject::DrawSelf(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ T2InfoDialog* T2DrawableObject::ShowInfoDialog(T2TowerDoc* towerDoc) { +	CRect rect; +	AfxGetMainWnd()->GetWindowRect(rect); + +	T2DLGTEMPLATE tmpl; +	tmpl.pt = rect.CenterPoint(); +	tmpl.moduleHandle = AfxGetInstanceHandle(); +	tmpl.resID = 1000; + +	T2InfoDialog *dialog = ConstructInfoDialog(); +	dialog->Realize(this, &tmpl, towerDoc, NULL, NULL, true, NULL, 0, 1); +	return dialog; +} + +/*virtual*/ T2InfoDialog* T2DrawableObject::ConstructInfoDialog() { +	return new T2InfoDialog(this); +} + +/*virtual*/ void T2DrawableObject::DrawHitMask(T2TowerDoc*) { +#line 78 +	_ASSERT(0); +} diff --git a/src/T2DLL/T2DrawableObject.h b/src/T2DLL/T2DrawableObject.h new file mode 100644 index 0000000..bb66edc --- /dev/null +++ b/src/T2DLL/T2DrawableObject.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" +#include "T2Object.h" + +class T2DrawableObject : public T2Object { +public: +	T2DrawableObject(); +	virtual ~T2DrawableObject(); +	virtual void Draw(T2TowerDoc*, const RECT&); +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*); +	virtual void DrawHitMask(T2TowerDoc*); +protected: +	virtual void DrawSelf(T2TowerDoc*, const RECT&); +	virtual T2InfoDialog* ConstructInfoDialog(); +}; diff --git a/src/T2DLL/T2ElevatorModule.cpp b/src/T2DLL/T2ElevatorModule.cpp new file mode 100644 index 0000000..5159c69 --- /dev/null +++ b/src/T2DLL/T2ElevatorModule.cpp @@ -0,0 +1,100 @@ +#include "T2ElevatorModule.h" + +T2ElevatorModule::T2ElevatorModule(int) { +} + +/*virtual*/ T2ElevatorModule::~T2ElevatorModule() { +} + +void T2ElevatorModule::Init(int, int) { +} + +/*virtual*/ void T2ElevatorModule::SetUsed(int) { +} + +int T2ElevatorModule::IsPtInArea(POINT, const RECT&) const { +} + +/*virtual*/ void T2ElevatorModule::StopAdded(T2TowerDoc*, T2Mover*, int) { +} + +/*virtual*/ void T2ElevatorModule::StopRemoved(T2TowerDoc*, T2Mover*, int) { +} + +void T2ElevatorModule::Remove(T2TowerDoc*, T2Mover*) { +} + +void T2ElevatorModule::RemoveContents(T2TowerDoc*, T2Mover*, int) { +} + +int T2ElevatorModule::HomePosRemoved(T2Mover*, int) { +} + +void T2ElevatorModule::TopTurnPosRemoved(int) { +} + +void T2ElevatorModule::BottomTurnPosRemoved(int) { +} + +void T2ElevatorModule::NextStopRemoved() { +} + +void T2ElevatorModule::MoverExpanded(T2Mover*, EEquipPos, int) { +} + +int T2ElevatorModule::IsStopPos(int, ERequestUpDown) const { +} + +int T2ElevatorModule::IsOnStopPos(int, ERequestUpDown) const { +} + +int T2ElevatorModule::IsOffStopPos(int, ERequestUpDown) const { +} + +void T2ElevatorModule::SetOnStop(int, ERequestUpDown) { +} + +void T2ElevatorModule::SetOffStop(int, ERequestUpDown) { +} + +void T2ElevatorModule::ClearOnStop(T2Request*) { +} + +void T2ElevatorModule::ClearOffStop(T2Request*) { +} + +void T2ElevatorModule::SetNextStop() { +} + +void T2ElevatorModule::ChangeTurnPos() { +} + +void T2ElevatorModule::StartToHomePos() { +} + +T2Request* T2ElevatorModule::GetAppointRequest(T2FloorInfo*, T2Mover*) { +} + +T2Request* T2ElevatorModule::GetAnyRequest(T2FloorInfo*, T2Mover*) { +} + +void T2ElevatorModule::CalcUintArea(const T2Mover*, RECT&) const { +} + +void T2ElevatorModule::CalcUintArea(const T2Mover*, int, RECT&) const { +} + +int T2ElevatorModule::IsPatChanged(T2Mover*) { +} + +T2People* T2ElevatorModule::LeaveToDstFloor(int) { +} + +/*virtual*/ void T2ElevatorModule::Enter(T2Mover*, T2People*) { +} + +/*virtual*/ void T2ElevatorModule::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2ElevatorModule::SaveSelf(T2Archive&) { +} diff --git a/src/T2DLL/T2ElevatorModule.h b/src/T2DLL/T2ElevatorModule.h new file mode 100644 index 0000000..66438d9 --- /dev/null +++ b/src/T2DLL/T2ElevatorModule.h @@ -0,0 +1,57 @@ +#pragma once +#include "common.h" + +class T2ElevatorModule { +public: +	T2ElevatorModule(int); +	virtual ~T2ElevatorModule(); +	void Init(int, int); +	virtual void SetUsed(int); +	int IsPtInArea(POINT, const RECT&) const; +	virtual void StopAdded(T2TowerDoc*, T2Mover*, int); +	virtual void StopRemoved(T2TowerDoc*, T2Mover*, int); +	void Remove(T2TowerDoc*, T2Mover*); +protected: +	void RemoveContents(T2TowerDoc*, T2Mover*, int); +	int HomePosRemoved(T2Mover*, int); +	void TopTurnPosRemoved(int); +	void BottomTurnPosRemoved(int); +	void NextStopRemoved(); +public: +	void MoverExpanded(T2Mover*, EEquipPos, int); +	int IsStopPos(int, ERequestUpDown) const; +	int IsOnStopPos(int, ERequestUpDown) const; +	int IsOffStopPos(int, ERequestUpDown) const; +	void SetOnStop(int, ERequestUpDown); +	void SetOffStop(int, ERequestUpDown); +	void ClearOnStop(T2Request*); +	void ClearOffStop(T2Request*); +	void SetNextStop(); +	void ChangeTurnPos(); +	void StartToHomePos(); +	T2Request* GetAppointRequest(T2FloorInfo*, T2Mover*); +	T2Request* GetAnyRequest(T2FloorInfo*, T2Mover*); +	void CalcUintArea(const T2Mover*, RECT&) const; +protected: +	void CalcUintArea(const T2Mover*, int, RECT&) const; +public: +	int IsPatChanged(T2Mover*); +	T2People* LeaveToDstFloor(int); +	virtual void Enter(T2Mover*, T2People*); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); + +public: +	int GetIndex() const {} +	void SetHomePosition(int) {} +	int GetOffsetPos() {} +	void SetOffsetPos(int) {} +	void AddOffsetPos(int) {} +	int GetNextStop() const {} +	int GetTopTurn() const {} +	int GetBottomTurn() const {} +	T2ElevatorModule(const T2ElevatorModule&) {} +	T2ElevatorModule& operator=(const T2ElevatorModule&) {} +	int GetHomePosition() const {} +}; diff --git a/src/T2DLL/T2ElvModuleList.cpp b/src/T2DLL/T2ElvModuleList.cpp new file mode 100644 index 0000000..69a087e --- /dev/null +++ b/src/T2DLL/T2ElvModuleList.cpp @@ -0,0 +1,43 @@ +#include "T2ElvModuleList.h" + +T2ElvModuleList::T2ElvModuleList() { +} + +/*virtual*/ T2ElvModuleList::~T2ElvModuleList() { +} + +/*virtual*/ int T2ElvModuleList::Init(T2MoverDef*, const RECT&) { +} + +void T2ElvModuleList::AddModule(T2TowerDoc*, int, int) { +} + +/*virtual*/ void T2ElvModuleList::Destruct(T2TowerDoc*) { +} + +/*virtual*/ T2MoverModule* T2ElvModuleList::ConstructModule() { +} + +void T2ElvModuleList::CalcBaseQDRect(RECT&) { +} + +int T2ElvModuleList::DestructModule(T2TowerDoc*, T2Mover*, POINT) { +} + +int T2ElvModuleList::IsHomePosition(int) { +} + +void T2ElvModuleList::MoverExpanded(T2Mover*, EEquipPos, int) { +} + +/*virtual*/ void T2ElvModuleList::StopAdded(T2TowerDoc*, T2Mover*, int) { +} + +/*virtual*/ void T2ElvModuleList::StopRemoved(T2TowerDoc*, T2Mover*, int) { +} + +/*virtual*/ void T2ElvModuleList::Read(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2ElvModuleList::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2ElvModuleList.h b/src/T2DLL/T2ElvModuleList.h new file mode 100644 index 0000000..894af22 --- /dev/null +++ b/src/T2DLL/T2ElvModuleList.h @@ -0,0 +1,28 @@ +#pragma once +#include "common.h" + +class T2ElvModuleList { +public: +	T2ElvModuleList(); +	virtual ~T2ElvModuleList(); +	virtual int Init(T2MoverDef*, const RECT&); +	void AddModule(T2TowerDoc*, int, int); +	virtual void Destruct(T2TowerDoc*); +	virtual T2MoverModule* ConstructModule(); +protected: +	void CalcBaseQDRect(RECT&); +public: +	int DestructModule(T2TowerDoc*, T2Mover*, POINT); +	int IsHomePosition(int); +	void MoverExpanded(T2Mover*, EEquipPos, int); +	virtual void StopAdded(T2TowerDoc*, T2Mover*, int); +	virtual void StopRemoved(T2TowerDoc*, T2Mover*, int); +	virtual void Read(T2Archive&, T2TowerDoc*); +	virtual void Write(T2Archive&); + +protected: +	virtual unsigned long GetMMClassID() {} +public: +	T2ElvModuleList(const T2ElvModuleList&) {} +	T2ElvModuleList& operator=(const T2ElvModuleList&) {} +}; diff --git a/src/T2DLL/T2Equip.cpp b/src/T2DLL/T2Equip.cpp new file mode 100644 index 0000000..b6af51b --- /dev/null +++ b/src/T2DLL/T2Equip.cpp @@ -0,0 +1,215 @@ +#include "GlobalFunc.h" +#include "T2Archive.h" +#include "T2CrossEquipArray.h" +#include "T2DateTime.h" +#include "T2Equip.h" +#include "T2SoundPlayer.h" +#include "T2TowerDoc.h" + +T2Equip::T2Equip() { +	mEquipID = 0; +	SetRect(&mArea, 0, 0, 0, 0); +	mEquipType = 0; +	mDrawMode = 0; +	mPatIndex = 0; +	mCapacity = 0; +	m44 = 0; +	mInMoneyIndex = 0; +	m48 = 0; +	mBuildDay = 0; +	mAttribute = 0; +	mCEArray = NULL; +	m58 = 0; +} + +/*virtual*/ T2Equip::~T2Equip() { +	if (mCEArray) +		delete mCEArray; +} + +int T2Equip::InitEquip(T2EquipDef* def, const RECT& area, unsigned int valiation) { +	if (def) { +		mEquipType = def->GetEquipType(); +		mCapacity = def->GetCapacity(); +		mAttribute = def->GetAttribute(); +		mToolDef = def; +	} +	mValiation = valiation; +	mArea = area; + +	mDrawMode = 0; +	m44 = 0; +	m48 = 0; +	mPatIndex = 0; + +	T2TowerDoc *towerDoc = GetCurrentT2TowerDoc(); +	if (towerDoc) +		mBuildDay = towerDoc->towerDoc_vf120()->CalcTotalDays(); +	else +		mBuildDay = 0; + +	mInMoneyIndex = (GetEquipDef()->GetNumOfInMoney() > 1) ? (GetEquipDef()->GetNumOfInMoney() / 2) : 0; + +	SetUsed(true); +	return true; +} + +/*virtual*/ void T2Equip::SetUsed(int used) { +	if (!used && mCEArray) { +		delete mCEArray; +		mCEArray = NULL; +	} +	T2HaveOutViewObject::SetUsed(used); +} + +int T2Equip::DaysSinceBuilt(const T2TowerDoc* towerDoc) const { +	return towerDoc->towerDoc_vf120()->CalcLapseDays(mBuildDay); +} + +void T2Equip::SetEquipArea(const RECT& rect) { +	mArea = rect; +} + +/*virtual*/ int T2Equip::GetOutMoney() const { +	int cost = 0; +	cost = GetEquipDef()->GetOutMoney(0); +	return cost; +} + +/*virtual*/ int T2Equip::GetInMoney() const { +	int cost = 0; +	cost = GetEquipDef()->GetInMoney(mInMoneyIndex); +	return cost; +} + +/*virtual*/ PARTCODE T2Equip::GetClickPart(T2TowerDoc* towerDoc, CPoint pt, int* val) { +	return GetEquipDef()->GetPartFromPoint(towerDoc, this, pt, val); +} + +/*virtual*/ PROCCODE T2Equip::DoDestruct(T2TowerDoc*, POINT, RECT&) { +	if (mCEArray) +		delete mCEArray; +	return ProcCode_2; +} + +void T2Equip::InsertCEID(int a, int b) { +	if (mCEArray) +		mCEArray->Insert(a, b); +} + +void T2Equip::RemoveCEID(int id) { +	if (mCEArray) +		mCEArray->Remove(&id); +} + +void T2Equip::ReplaceCEID(unsigned int oldID, unsigned int newID) { +	if (mCEArray) +		mCEArray->ReplaceID(oldID, newID); +} + +/*virtual*/ PARTCODE T2Equip::GetPartFromPoint(T2TowerDoc* towerDoc, POINT pt, int* val) { +	return GetEquipDef()->GetPartFromPoint(towerDoc, this, pt, val); +} + +/*virtual*/ void T2Equip::LoadSelf(T2Archive& archive, T2TowerDoc* towerDoc) { +	T2Object::LoadSelf(archive, towerDoc); + +	if (IsUsed()) { +		unsigned short us; +		short s; +		unsigned char uc; + +		archive >> us; +		mEquipID = us; + +		archive.ReadSRect(mArea); + +		archive >> s; +		mEquipType = s; +		archive >> s; +		mDrawMode = s; +		archive >> uc; +		mPatIndex = uc; +		archive >> s; +		m44 = s; +		archive >> s; +		mInMoneyIndex = s; +		archive >> s; +		m48 = s; + +		archive >> mBuildDay; +		mCEArray = (T2RouteCEArray *) T2CrossEquipArray::ReadCEArray(archive); +		archive >> mValiation; +	} +} + +/*virtual*/ void T2Equip::SaveSelf(T2Archive& archive) { +	T2Object::SaveSelf(archive); + +	if (IsUsed()) { +		unsigned short us; +		short s; +		unsigned char uc; + +		us = mEquipID; +		archive << us; + +		archive.WriteSRect(mArea); + +		s = mEquipType; +		archive << s; +		s = mDrawMode; +		archive << s; +		uc = mPatIndex; +		archive << uc; +		s = m44; +		archive << s; +		s = mInMoneyIndex; +		archive << s; +		s = m48; +		archive << s; + +		archive << mBuildDay; +		T2CrossEquipArray::WriteCEArray(mCEArray, archive); +		archive << mValiation; +	} +} + +/*virtual*/ T2InfoDialog* T2Equip::ShowInfoDialog(T2TowerDoc* towerDoc) { +	return GetEquipDef()->ShowInfoDialog(towerDoc, this); +} + +/*virtual*/ void T2Equip::PlaySound(T2TowerDoc* towerDoc, int id, unsigned int a, unsigned int b) const { +	if (towerDoc->towerDoc_vf15C(mArea)) { +		T2EquipDef *equipDef = GetEquipDef(); +		T2SoundPlayer *soundPlayer = towerDoc->towerDoc_vf134(); +		if (equipDef && soundPlayer) { +			CRect rect; +			GetEquipArea(rect); +			CPoint pt = rect.CenterPoint(); +			CString name = equipDef->CalcSoundID(id); +			soundPlayer->Play( +				name, +				a, +				b, +				&pt, +				PlayMode_0, +				100 +			); +		} +	} +} + +/*virtual*/ void T2Equip::DrawHitMask(T2TowerDoc* towerDoc) { +	m58 = true; +	if (mToolDef->DrawHitMask(towerDoc, this) == ProcCode_0) { +		RECT rect; +		GetEquipArea(rect); +		Draw(towerDoc, rect); +	} +	m58 = false; +} + +void T2Equip::GetTypicalName(CString& outStr) const { +	GetEquipDef()->GetName(outStr, GetValiation()); +} diff --git a/src/T2DLL/T2Equip.h b/src/T2DLL/T2Equip.h new file mode 100644 index 0000000..7e4c914 --- /dev/null +++ b/src/T2DLL/T2Equip.h @@ -0,0 +1,82 @@ +#pragma once +#include "common.h" +#include "T2EquipDef.h" +#include "T2HaveOutViewObject.h" +#include "T2RouteCEArray.h" + +class T2Equip : public T2HaveOutViewObject { +public: +	T2Equip(); +	virtual ~T2Equip(); +	virtual void SetUsed(int); +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*); +	virtual void DrawHitMask(T2TowerDoc*); +	virtual int IsNeedDraw() const { return true; } +	virtual int GetOutMoney() const; +	virtual int GetInMoney() const; +	virtual void BuildStart(T2TowerDoc*) {} +	virtual int IsBuildFinish() { return true; } +	virtual PARTCODE GetPartFromPoint(T2TowerDoc*, POINT, int*); +	virtual PARTCODE GetClickPart(T2TowerDoc*, CPoint, int*); +	virtual PROCCODE DoDestruct(T2TowerDoc*, POINT, RECT&); +	virtual void SetDrawMode(int drawMode) { +		if (mDrawMode != drawMode) +			mDrawMode = drawMode; +	} +	virtual void ClearDrawMode() { +		mDrawMode = 0; +	} +	virtual void PlaySound(T2TowerDoc*, int, unsigned int, unsigned int) const; + +	int InitEquip(T2EquipDef* def, const RECT& area, unsigned int valiation); +	int DaysSinceBuilt(const T2TowerDoc*) const; +	void SetEquipArea(const RECT&); +	void InsertCEID(int, int); +	void RemoveCEID(int); +	void ReplaceCEID(unsigned int, unsigned int); +	void GetTypicalName(CString&) const; + +	unsigned int GetAttribute() const { return mAttribute; } +	int IsSetAttribute(unsigned int a) const { return (mAttribute & a) != 0; } +	int IsMover() const { return IsSetAttribute(2); } +	int IsNormalMenteCost() const { return IsSetAttribute(0x100); } +	unsigned int GetEquipID() const { return mEquipID; } +	void SetEquipDef(T2EquipDef* equipDef) { +		SetToolDef(equipDef); +	} +	void GetEquipArea(RECT& rect) const { +		rect = mArea; +	} +	int GetAreaWidth() const { return mArea.right - mArea.left; } +	int GetAreaHeight() const { return mArea.bottom - mArea.top; } +	int GetEquipType() const { return mEquipType; } +	int GetCapacity() const { return mCapacity; } +	int GetInMoneyIndex() const { return mInMoneyIndex; } +	int GetBuildDay() const { return mBuildDay; } +	int GetDrawMode() const { return mDrawMode; } +	T2CrossEquipArray* GetCEArray() const { return mCEArray; } +	T2EquipDef* GetEquipDef() const { return (T2EquipDef *) mToolDef; } +	void SetInMoneyIndex(int i) { mInMoneyIndex = i; } +	int GetPatIndex() const { return mPatIndex; } +	void SetPatIndex(int i) { mPatIndex = i; } + +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); + +	friend class T2EquipDef; + +	unsigned int mEquipID; +	RECT mArea; +	int mEquipType; +	int mDrawMode; +	int mPatIndex; +	int mCapacity; +	int m44; +	int m48; +	int mBuildDay; +	unsigned int mAttribute; +	T2RouteCEArray *mCEArray; +	int m58; +	int mInMoneyIndex; +}; diff --git a/src/T2DLL/T2EquipDef.cpp b/src/T2DLL/T2EquipDef.cpp new file mode 100644 index 0000000..bb694d6 --- /dev/null +++ b/src/T2DLL/T2EquipDef.cpp @@ -0,0 +1,187 @@ +#include "CResFile.h" +#include "T2Archive.h" +#include "T2BitImage.h" +#include "T2Equip.h" +#include "T2EquipDef.h" +#include "T2EquipPlugin.h" +#include "T2ImageObj.h" +#include "T2InfoDialog.h" +#include "T2People.h" +#include "T2PeopleLinkIterator.h" +#include "T2TowerDoc.h" +#include "T2WorldDef.h" +#include "UT2Coordinate.h" + +T2EquipDef::T2EquipDef(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile, T2WorldDef* worldDef, T2EquipPlugin* plugin) +	: T2ToolDef(type, specifier, resFile, worldDef, plugin) +{ +	unsigned long tmp; + +	*resFile >> mCapacity; +	*resFile >> mStress; +	*resFile >> tmp; + +	for (int j = 0; j < mValiationCount; j++) { +		*resFile >> m154; +		*resFile >> tmp; +		*resFile >> tmp; +	} + +	*resFile >> mOutSpan; +	*resFile >> mInSpan; +	*resFile >> mNumOfInMoney; + +	for (int i = 0; i < mNumOfInMoney; i++) { +		if (i < 4) { +			*resFile >> mInMoney[i]; +		} else { +			int moneyTmp; +			*resFile >> moneyTmp; +		} +	} + +	m124 = NULL; +	m128 = NULL; +	m130 = NULL; +	m140 = 0; + +	if (mNumOfInMoney > 4) +		mNumOfInMoney = 4; + +	try { +		int outViewKind = worldDef->GetOutViewKind() + 1001; +		m124 = new T2BitImage(mModuleHandle, outViewKind, 1); +		mImageObj->AddObject(mModuleHandle, outViewKind, m124); +	} catch (int e) { +	} + +	try { +		m128 = new T2BitImage(mModuleHandle, 1010, 1); +		mImageObj->AddObject(mModuleHandle, 1010, m128); +	} catch (int e) { +	} + +	try { +		m130 = new T2BitImage(mModuleHandle, 1100, 1); +		mImageObj->AddObject(mModuleHandle, 1100, m130); +	} catch (int e) { +	} + +	mWordDefArray = MakeWordDefArray(); +} + +/*virtual*/ T2EquipDef::~T2EquipDef() { +	if (m124) +		delete m124; +	if (m128) +		delete m128; +	if (m130) +		delete m130; + +	if (mWordDefArray) +		delete mWordDefArray; +} + +/*virtual*/ int T2EquipDef::InitObject(T2Object* object) { +	object->SetUsed(true); +	((T2Equip *) object)->mEquipType = GetEquipType(); +	((T2Equip *) object)->mCapacity = mCapacity; +	((T2Equip *) object)->mAttribute = mAttribute; +	((T2Equip *) object)->SetEquipDef(this); +	return true; +} + +/*virtual*/ int T2EquipDef::ClickProc(T2TowerDoc*, RECT*, unsigned int&) { +	return 1; +} + +/*virtual*/ int T2EquipDef::GetDestructPartProc(int, POINT, POINT, T2Equip*) { +	return -1; +} + +/*virtual*/ AREACHECKCODE T2EquipDef::AreaCheck(T2TowerDoc*, RECT&, unsigned int, int) { +	return AreaCheckCode_0; +} + +/*virtual*/ PARTCODE T2EquipDef::GetPartFromPoint(T2TowerDoc* towerDoc, T2Equip* equip, POINT pt, int*) { +	UT2Coordinate::QDToUnit(pt, towerDoc->mZoomLevel); +	if (PtInRect(&equip->mArea, pt)) +		return PartCode_2; +	else +		return PartCode_0; +} + +/*virtual*/ void T2EquipDef::BuildFinish(T2TowerDoc* towerDoc, T2Equip* equip) { +	towerDoc->towerDoc_vf170()->CalcOptionObj(towerDoc, equip); +} + +/*virtual*/ unsigned long T2EquipDef::OptionProc(T2TowerDoc*, T2Equip*, void*) { +	return 0; +} + +/*virtual*/ void T2EquipDef::DebugInfo(CWnd&, CListCtrl&, T2Equip*) { +} + +/*virtual*/ int T2EquipDef::FingerToolProc(T2TowerDoc*, T2Equip*, const POINT&, MOUSEEVENT) { +	return 0; +} + +/*virtual*/ T2InfoDialog* T2EquipDef::ShowInfoDialog(T2TowerDoc* towerDoc, T2Equip* equip) { +	CRect rect; +	AfxGetMainWnd()->GetWindowRect(rect); + +	T2DLGTEMPLATE tmpl; +	tmpl.pt = rect.CenterPoint(); +	tmpl.moduleHandle = mModuleHandle; +	tmpl.resID = GetInfoDialogID(towerDoc, equip); + +	T2InfoDialog *dialog = ConstructInfoDialog(equip); +	dialog->Realize(this, &tmpl, towerDoc, mImageObj, NULL, true, NULL, 0, 1); +	return dialog; +} + +/*virtual*/ int T2EquipDef::GetInfoDialogID(T2TowerDoc*, const T2Equip*) const { +	return 1000; +} + +/*virtual*/ T2InfoDialog* T2EquipDef::ConstructInfoDialog(T2Equip* equip) { +	return new T2InfoDialog(equip); +} + +/*virtual*/ void T2EquipDef::DrawPeople(T2TowerDoc* towerDoc, T2Equip* equip) { +	//T2People *people = (T2People *) equip; +	//T2PeopleLinkIterator iter(people); +	//T2People *i; +	//while (iter.Next(&i)) +	//	i->Draw(towerDoc, people); +	// TODO: which subclass is this...? +} + +int T2EquipDef::GetInMoney(int i) { +	int cost = 0; +	if (i < mNumOfInMoney) +		cost = mInMoney[i]; +	return cost; +} + +/*virtual*/ void T2EquipDef::LoadExtraData(T2Archive& archive, T2TowerDoc*, T2HaveOutViewObject*) { +	int len; +	archive >> len; + +	for (int i = 0; i < len; i++) { +		unsigned char b; +		archive >> b; +	} +} + +/*virtual*/ void T2EquipDef::SaveExtraData(T2Archive& archive, T2HaveOutViewObject*) { +	int len = 0; +	archive << len; +} + +T2WordDefArray* T2EquipDef::MakeWordDefArray() { +	return 0; // TODO +} + +void T2EquipDef::GetWords(T2People*, CString&) const { +} diff --git a/src/T2DLL/T2EquipDef.h b/src/T2DLL/T2EquipDef.h new file mode 100644 index 0000000..de66a3c --- /dev/null +++ b/src/T2DLL/T2EquipDef.h @@ -0,0 +1,68 @@ +#pragma once +#include "common.h" +#include "T2ToolDef.h" + +class T2EquipDef : public T2ToolDef { +public: +	T2EquipDef(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile, T2WorldDef* worldDef, T2EquipPlugin* plugin); +	virtual ~T2EquipDef(); +	virtual int InitObject(T2Object*); +	virtual int IsMover() { return IsSetAttribute(2); } +	virtual void LoadExtraData(T2Archive&, T2TowerDoc*, T2HaveOutViewObject*); +	virtual void SaveExtraData(T2Archive&, T2HaveOutViewObject*); +	virtual AREACHECKCODE AreaCheck(T2TowerDoc*, RECT&, unsigned int, int); +	virtual int ClickProc(T2TowerDoc*, RECT*, unsigned int&); +	virtual int GetDestructPartProc(int, POINT, POINT, T2Equip*); +	virtual PARTCODE GetPartFromPoint(T2TowerDoc*, T2Equip*, POINT, int*); +	virtual PROCCODE DoBuildProc(T2TowerDoc*, RECT&, unsigned int) { +		return ProcCode_0; +	} +	virtual int FingerToolProc(T2TowerDoc*, T2Equip*, const POINT&, MOUSEEVENT); +	virtual void BuildFinish(T2TowerDoc*, T2Equip*); +	virtual unsigned long OptionProc(T2TowerDoc*, T2Equip*, void*); +	virtual void DrawPeople(T2TowerDoc*, T2Equip*); +	virtual int GetInfoDialogID(T2TowerDoc*, const T2Equip*) const; +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*, T2Equip*); +	virtual T2InfoDialog* ConstructInfoDialog(T2Equip*); +	virtual int EmergencyProc(T2TowerDoc*, T2Equip*) { +		return 0; +	} +	virtual int BurntDownProc(T2TowerDoc*, T2Equip*) { +		return 0; +	} +	virtual void DebugInfo(CWnd&, CListCtrl&, T2Equip*); + +	int GetInMoney(int); +	void GetWords(T2People*, CString&) const; + +	int IsSetAttribute(unsigned int a) { +		return (mAttribute & a) != 0; +	} +	int IsAbleDragMaking() { return IsSetAttribute(0x80); } +	int GetNumOfInMoney() const { return mNumOfInMoney; } +	int GetEquipType() const { return mToolType; } +	void CalcEquipRect(RECT& rect) const { +		rect.top = 0; +		rect.left = 0; +		rect.bottom = mHeight; +		rect.right = mWidth; +	} +	int GetCapacity() const { return mCapacity; } +	unsigned int GetAttribute() const { return mAttribute; } + +protected: +	T2WordDefArray* MakeWordDefArray(); + +	int mCapacity; +	int mStress; +	T2BitImage *m124; +	T2BitImage *m128; +	T2WordDefArray *mWordDefArray; +	T2BitImage *m130; +	int mOutSpan; +	int mInSpan; +	int mNumOfInMoney; +	int m140; +	int mInMoney[4]; +	int m154; +}; diff --git a/src/T2DLL/T2EquipInfoDialog.cpp b/src/T2DLL/T2EquipInfoDialog.cpp new file mode 100644 index 0000000..7fd307a --- /dev/null +++ b/src/T2DLL/T2EquipInfoDialog.cpp @@ -0,0 +1,7 @@ +#include "T2EquipInfoDialog.h" + +T2EquipInfoDialog::T2EquipInfoDialog(T2Equip*) { +} + +/*virtual*/ T2EquipInfoDialog::~T2EquipInfoDialog() { +} diff --git a/src/T2DLL/T2EquipInfoDialog.h b/src/T2DLL/T2EquipInfoDialog.h new file mode 100644 index 0000000..cc6ce0b --- /dev/null +++ b/src/T2DLL/T2EquipInfoDialog.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" + +class T2EquipInfoDialog { +public: +	T2EquipInfoDialog(T2Equip*); +	virtual ~T2EquipInfoDialog(); + +	T2Equip* GetEquip() const {} +	T2EquipDef* GetEquipDef() const {} +}; diff --git a/src/T2DLL/T2EquipPlugin.cpp b/src/T2DLL/T2EquipPlugin.cpp new file mode 100644 index 0000000..bd5fabf --- /dev/null +++ b/src/T2DLL/T2EquipPlugin.cpp @@ -0,0 +1,9 @@ +#include "T2EquipPlugin.h" + +T2EquipPlugin::T2EquipPlugin(DWORD type, T2PluginSpecifier& specifier) +	: T2ToolPlugin(type, specifier) +{ +} + +/*virtual*/ T2EquipPlugin::~T2EquipPlugin() { +} diff --git a/src/T2DLL/T2EquipPlugin.h b/src/T2DLL/T2EquipPlugin.h new file mode 100644 index 0000000..1c60f38 --- /dev/null +++ b/src/T2DLL/T2EquipPlugin.h @@ -0,0 +1,9 @@ +#pragma once +#include "common.h" +#include "T2ToolPlugin.h" + +class T2EquipPlugin : public T2ToolPlugin { +public: +	T2EquipPlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~T2EquipPlugin(); +}; diff --git a/src/T2DLL/T2EquipPtrList.cpp b/src/T2DLL/T2EquipPtrList.cpp new file mode 100644 index 0000000..472790a --- /dev/null +++ b/src/T2DLL/T2EquipPtrList.cpp @@ -0,0 +1,28 @@ +#include "T2EquipPtrList.h" + +T2EquipPtrList::T2EquipPtrList(unsigned int) { +} + +/*virtual*/ T2EquipPtrList::~T2EquipPtrList() { +} + +void T2EquipPtrList::AddItem(T2Equip*) { +} + +void T2EquipPtrList::RemoveItem(T2Equip*) { +} + +void T2EquipPtrList::RemoveItem(int) { +} + +int T2EquipPtrList::GetIndex(T2Equip*) { +} + +int T2EquipPtrList::GetIndex(unsigned int) { +} + +T2Equip* T2EquipPtrList::GetItem(int) { +} + +void T2EquipPtrList::SetRelatedTenantID(unsigned int) { +} diff --git a/src/T2DLL/T2EquipPtrList.h b/src/T2DLL/T2EquipPtrList.h new file mode 100644 index 0000000..01241b0 --- /dev/null +++ b/src/T2DLL/T2EquipPtrList.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class T2EquipPtrList { +public: +	T2EquipPtrList(unsigned int); +	virtual ~T2EquipPtrList(); +	void AddItem(T2Equip*); +	void RemoveItem(T2Equip*); +	void RemoveItem(int); +	int GetIndex(T2Equip*); +	int GetIndex(unsigned int); +	T2Equip* GetItem(int); +	void SetRelatedTenantID(unsigned int); + +	unsigned int GetAttribute() const {} +	T2EquipPtrList(const T2EquipPtrList&) {} +	T2EquipPtrList& operator=(const T2EquipPtrList&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2EventItem.cpp b/src/T2DLL/T2EventItem.cpp new file mode 100644 index 0000000..3a83cbb --- /dev/null +++ b/src/T2DLL/T2EventItem.cpp @@ -0,0 +1,79 @@ +#include "T2EventItem.h" + +T2EventItem::T2EventItem(T2TowerEvent*, CResFile*, int) { +} + +T2EventItem::T2EventItem(T2TowerEvent*, int, int, int, int, int, int) { +} + +T2EventItem::T2EventItem(T2EventItem*, int) { +} + +/*virtual*/ T2EventItem::~T2EventItem() { +} + +/*virtual*/ void T2EventItem::Init(T2TowerDoc*) { +} + +/*virtual*/ int T2EventItem::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2EventItem::ReStart(T2TowerDoc*) { +} + +/*virtual*/ void T2EventItem::StopEvent(T2TowerDoc*) { +} + +T2WorldDef* T2EventItem::GetWorldDef() { +} + +T2TowerDoc* T2EventItem::GetTowerDoc() const { +} + +T2TowerEvent* T2EventItem::GetTowerEvent() { +} + +int T2EventItem::GetLevelBit() { +} + +int T2EventItem::IsExclusive() { +} + +int T2EventItem::GetCycleDay() { +} + +int T2EventItem::GetBeginTime() { +} + +void T2EventItem::SetBeginTime(int) { +} + +int T2EventItem::GetEndTime() { +} + +/*virtual*/ int T2EventItem::IsBeginTime(unsigned int) { +} + +/*virtual*/ int T2EventItem::IsBeginDay(int) { +} + +int T2EventItem::GetStatus() { +} + +void T2EventItem::SetStatus(int) { +} + +T2EventItem* T2EventItem::GetOriginalDef() { +} + +/*virtual*/ unsigned int T2EventItem::DoDialog(T2TowerDoc*, int, int, int, const char*) { +} + +/*virtual*/ void T2EventItem::DoAlert(T2TowerDoc*, CString&, int) { +} + +/*virtual*/ void T2EventItem::Write(T2Archive&) { +} + +/*virtual*/ void T2EventItem::Read(T2Archive&) { +} diff --git a/src/T2DLL/T2EventItem.h b/src/T2DLL/T2EventItem.h new file mode 100644 index 0000000..e166c22 --- /dev/null +++ b/src/T2DLL/T2EventItem.h @@ -0,0 +1,46 @@ +#pragma once +#include "common.h" + +class T2EventItem { +public: +	T2EventItem(T2TowerEvent*, CResFile*, int); +	T2EventItem(T2TowerEvent*, int, int, int, int, int, int); +	T2EventItem(T2EventItem*, int); +	virtual ~T2EventItem(); +	virtual void Init(T2TowerDoc*); +	virtual int Start(T2TowerDoc*); +	virtual int ReStart(T2TowerDoc*); +	virtual void StopEvent(T2TowerDoc*); +	T2WorldDef* GetWorldDef(); +	T2TowerDoc* GetTowerDoc() const; +	T2TowerEvent* GetTowerEvent(); +	int GetLevelBit(); +	int IsExclusive(); +	int GetCycleDay(); +	int GetBeginTime(); +	void SetBeginTime(int); +	int GetEndTime(); +	virtual int IsBeginTime(unsigned int); +	virtual int IsBeginDay(int); +	int GetStatus(); +	void SetStatus(int); +	T2EventItem* GetOriginalDef(); +protected: +	virtual unsigned int DoDialog(T2TowerDoc*, int, int, int, const char*); +	virtual void DoAlert(T2TowerDoc*, CString&, int); +public: +	virtual void Write(T2Archive&); +	virtual void Read(T2Archive&); + +	virtual unsigned long GetID() {} +	int GetSubID() {} +	virtual void ViewModeChanged(T2TowerDoc*, VIEWMODE) {} +	virtual unsigned long OptionProc(unsigned long, void*) {} +	virtual int IsXEvent() {} +protected: +	virtual unsigned int DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*) {} +	virtual void SetupDialog(T2Dialog*) {} +public: +	T2EventItem(const T2EventItem&) {} +	T2EventItem& operator=(const T2EventItem&) {} +}; diff --git a/src/T2DLL/T2FInfoAreaIterator.cpp b/src/T2DLL/T2FInfoAreaIterator.cpp new file mode 100644 index 0000000..c7452ab --- /dev/null +++ b/src/T2DLL/T2FInfoAreaIterator.cpp @@ -0,0 +1,64 @@ +#include "T2FInfoAreaIterator.h" + +T2FInfoAreaIterator::T2FInfoAreaIterator(const T2FloorInfo&, const RECT&) { +} + +/*virtual*/ T2FInfoAreaIterator::~T2FInfoAreaIterator() { +} + +void T2FInfoAreaIterator::Reset() { +} + +int T2FInfoAreaIterator::CalcNextUnitInfo() { +} + +int T2FInfoAreaIterator::CurrentV(int&) const { +} + +int T2FInfoAreaIterator::Current(T2UnitInfo*&) { +} + +int T2FInfoAreaIterator::Next(T2UnitInfo*&) { +} + +int T2FInfoAreaIterator::NextTenant(T2Tenant*&) { +} + +void T2FInfoAreaIterator::GetTenantRect(RECT&) { +} + +int T2FInfoAreaIterator::NextRequest(T2Request*&) { +} + +int T2FInfoAreaIterator::NextMover(T2Mover*&) { +} + +T2FInfoPtIterator::T2FInfoPtIterator(const T2FloorInfo&, POINT) { +} + +/*virtual*/ T2FInfoPtIterator::~T2FInfoPtIterator() { +} + +int T2FInfoPtIterator::CurrentH(int&) const { +} + +int T2FInfoPtIterator::CalcRightUnitInfo() { +} + +int T2FInfoPtIterator::CalcLeftUnitInfo() { +} + +int T2FInfoPtIterator::Current(T2UnitInfo*&) { +} + +int T2FInfoPtIterator::Right(T2UnitInfo*&) { +} + +int T2FInfoPtIterator::Left(T2UnitInfo*&) { +} + +int T2FInfoPtIterator::RightTenant(T2Tenant*&) { +} + +int T2FInfoPtIterator::LeftTenant(T2Tenant*&) { +} diff --git a/src/T2DLL/T2FInfoAreaIterator.h b/src/T2DLL/T2FInfoAreaIterator.h new file mode 100644 index 0000000..59ab38e --- /dev/null +++ b/src/T2DLL/T2FInfoAreaIterator.h @@ -0,0 +1,42 @@ +#pragma once +#include "common.h" + +class T2FInfoAreaIterator { +public: +	T2FInfoAreaIterator(const T2FloorInfo&, const RECT&); +	virtual ~T2FInfoAreaIterator(); +	void Reset(); +protected: +	int CalcNextUnitInfo(); +public: +	int CurrentV(int&) const; +	int Current(T2UnitInfo*&); +	int Next(T2UnitInfo*&); +	int NextTenant(T2Tenant*&); +	void GetTenantRect(RECT&); +	int NextRequest(T2Request*&); +	int NextMover(T2Mover*&); + +	T2FInfoAreaIterator(const T2FInfoAreaIterator&) {} +protected: +	int IsValidPosition() const {} +}; +class T2FInfoPtIterator { +public: +	T2FInfoPtIterator(const T2FloorInfo&, POINT); +	virtual ~T2FInfoPtIterator(); +	int CurrentH(int&) const; +protected: +	int CalcRightUnitInfo(); +	int CalcLeftUnitInfo(); +public: +	int Current(T2UnitInfo*&); +	int Right(T2UnitInfo*&); +	int Left(T2UnitInfo*&); +	int RightTenant(T2Tenant*&); +	int LeftTenant(T2Tenant*&); + +	T2FInfoPtIterator(const T2FInfoPtIterator&) {} +protected: +	int IsValidPosition() const {} +}; diff --git a/src/T2DLL/T2FireBurning.cpp b/src/T2DLL/T2FireBurning.cpp new file mode 100644 index 0000000..b07e3c9 --- /dev/null +++ b/src/T2DLL/T2FireBurning.cpp @@ -0,0 +1,82 @@ +#include "T2FireBurning.h" + +T2FireBurning::T2FireBurning(T2TowerEvent*, CResFile*, int) { +} + +/*virtual*/ T2FireBurning::~T2FireBurning() { +} + +/*virtual*/ int T2FireBurning::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2FireBurning::Exec(T2TowerDoc*) { +} + +/*virtual*/ void T2FireBurning::StartEvent(T2TowerDoc*, POINT, const T2Tenant*) { +} + +/*virtual*/ void T2FireBurning::SetupDialog(T2Dialog*) { +} + +/*virtual*/ unsigned int T2FireBurning::DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*) { +} + +/*virtual*/ void T2FireBurning::IdleEvent(T2TowerDoc*) { +} + +/*virtual*/ void T2FireBurning::StopEvent(T2TowerDoc*) { +} + +int T2FireBurning::MakeFire(POINT, T2TowerDoc*) { +} + +int T2FireBurning::AdjustFirePos(T2FloorInfo*, POINT&, RECT&) const { +} + +void T2FireBurning::Extinguish(T2Fire*) { +} + +int T2FireBurning::DoExtinguish(CPoint&) { +} + +void T2FireBurning::CallFireman(T2TowerDoc*, const T2Tenant*) { +} + +int T2FireBurning::IsBreakoutFire(const T2TowerDoc*, POINT&, T2Tenant*&) const { +} + +T2Fire::T2Fire(POINT&, T2TowerDoc*, int, T2ImageObj*) { +} + +T2Fire::~T2Fire() { +} + +void T2Fire::SetFireman(T2People*) { +} + +int T2Fire::Move() { +} + +int T2Fire::HitTest(CPoint&, CRect&) { +} + +int T2Fire::ExtinguishByFireman(T2TowerDoc*, T2PeoplePtrList*) { +} + +T2Helicopter::T2Helicopter(T2TowerDoc*, const T2Tenant*) { +} + +T2Helicopter::~T2Helicopter() { +} + +void T2Helicopter::Move(T2TowerDoc*) { +} + +T2FireAttach::T2FireAttach(T2EventItem*, unsigned int, int) { +} + +/*virtual*/ T2FireAttach::~T2FireAttach() { +} + +/*virtual*/ void T2FireAttach::ExecuteSelf(unsigned int, void*) { +} diff --git a/src/T2DLL/T2FireBurning.h b/src/T2DLL/T2FireBurning.h new file mode 100644 index 0000000..6db462c --- /dev/null +++ b/src/T2DLL/T2FireBurning.h @@ -0,0 +1,67 @@ +#pragma once +#include "common.h" + +class T2FireBurning { +public: +	T2FireBurning(T2TowerEvent*, CResFile*, int); +	virtual ~T2FireBurning(); +	virtual int Start(T2TowerDoc*); +	virtual int Exec(T2TowerDoc*); +	virtual void StartEvent(T2TowerDoc*, POINT, const T2Tenant*); +protected: +	virtual void SetupDialog(T2Dialog*); +public: +	virtual unsigned int DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*); +	virtual void IdleEvent(T2TowerDoc*); +	virtual void StopEvent(T2TowerDoc*); +	int MakeFire(POINT, T2TowerDoc*); +protected: +	int AdjustFirePos(T2FloorInfo*, POINT&, RECT&) const; +public: +	void Extinguish(T2Fire*); +	int DoExtinguish(CPoint&); +protected: +	void CallFireman(T2TowerDoc*, const T2Tenant*); +	int IsBreakoutFire(const T2TowerDoc*, POINT&, T2Tenant*&) const; + +public: +	virtual unsigned long GetID() {} +	int IsEmergency() {} +	T2FireBurning(const T2FireBurning&) {} +	T2FireBurning& operator=(const T2FireBurning&) {} +}; +class T2Fire { +public: +	T2Fire(POINT&, T2TowerDoc*, int, T2ImageObj*); +	~T2Fire(); +protected: +	void SetFireman(T2People*); +public: +	int Move(); +	int HitTest(CPoint&, CRect&); +	int ExtinguishByFireman(T2TowerDoc*, T2PeoplePtrList*); + +	void SetArsonTenant(T2Tenant*) {} +	T2Tenant* GetArsonTenant() {} +	T2People* GetFireman() const {} +	T2Fire& operator=(const T2Fire&) {} +}; +class T2Helicopter { +public: +	T2Helicopter(T2TowerDoc*, const T2Tenant*); +	~T2Helicopter(); +	void Move(T2TowerDoc*); + +	T2Helicopter& operator=(const T2Helicopter&) {} +}; +class T2FireAttach { +public: +	T2FireAttach(T2EventItem*, unsigned int, int); +	virtual ~T2FireAttach(); +protected: +	virtual void ExecuteSelf(unsigned int, void*); + +public: +	T2FireAttach(const T2FireAttach&) {} +	T2FireAttach& operator=(const T2FireAttach&) {} +}; diff --git a/src/T2DLL/T2FireWork.cpp b/src/T2DLL/T2FireWork.cpp new file mode 100644 index 0000000..abddcf4 --- /dev/null +++ b/src/T2DLL/T2FireWork.cpp @@ -0,0 +1,28 @@ +#include "T2FireWork.h" + +T2FireWork::T2FireWork(int, int, CPalette*) { +} + +T2FireWork::~T2FireWork() { +} + +T2BitImage* T2FireWork::GetBitImage() { +} + +void T2FireWork::Start() { +} + +void T2FireWork::Stop() { +} + +int T2FireWork::IsDisposable() { +} + +int T2FireWork::Idle() { +} + +int T2FireWork::CalcStarData(FIREWORK_STARINFO*, float, int*, int*, int*, int*) { +} + +void T2FireWork::PutDot(int, int, int, unsigned char) { +} diff --git a/src/T2DLL/T2FireWork.h b/src/T2DLL/T2FireWork.h new file mode 100644 index 0000000..e9e5215 --- /dev/null +++ b/src/T2DLL/T2FireWork.h @@ -0,0 +1,19 @@ +#pragma once +#include "common.h" + +class T2FireWork { +public: +	T2FireWork(int, int, CPalette*); +	~T2FireWork(); +	T2BitImage* GetBitImage(); +	void Start(); +	void Stop(); +	int IsDisposable(); +	int Idle(); +protected: +	int CalcStarData(FIREWORK_STARINFO*, float, int*, int*, int*, int*); +	void PutDot(int, int, int, unsigned char); + +public: +	T2FireWork& operator=(const T2FireWork&) {} +}; diff --git a/src/T2DLL/T2FloorCEArray.cpp b/src/T2DLL/T2FloorCEArray.cpp new file mode 100644 index 0000000..f12a81a --- /dev/null +++ b/src/T2DLL/T2FloorCEArray.cpp @@ -0,0 +1,7 @@ +#include "T2FloorCEArray.h" + +T2FloorCEArray::T2FloorCEArray() { +} + +/*virtual*/ T2FloorCEArray::~T2FloorCEArray() { +} diff --git a/src/T2DLL/T2FloorCEArray.h b/src/T2DLL/T2FloorCEArray.h new file mode 100644 index 0000000..c8a6610 --- /dev/null +++ b/src/T2DLL/T2FloorCEArray.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" +#include "T2RouteCEArray.h" + +class T2FloorCEArray : public T2RouteCEArray { +public: +	T2FloorCEArray(); +	virtual ~T2FloorCEArray(); + +	virtual DWORD GetCEClassID() { return 'FCEA'; } +}; diff --git a/src/T2DLL/T2FloorInfo.cpp b/src/T2DLL/T2FloorInfo.cpp new file mode 100644 index 0000000..cfbd45b --- /dev/null +++ b/src/T2DLL/T2FloorInfo.cpp @@ -0,0 +1,187 @@ +#include "T2FloorInfo.h" + +T2FloorInfo::T2FloorInfo(const T2WorldDef*) { +} + +/*virtual*/ T2FloorInfo::~T2FloorInfo() { +} + +int T2FloorInfo::UnitToFloor(int) const { +} + +void T2FloorInfo::InitMask(CResFile&) { +} + +void T2FloorInfo::Read(T2Archive&, T2TowerDoc*) { +} + +void T2FloorInfo::Write(T2Archive&) { +} + +int T2FloorInfo::IsValidRange(const RECT&) const { +} + +int T2FloorInfo::IsAreaBuildable(const RECT&) { +} + +int T2FloorInfo::IsAllTenant(const RECT&) { +} + +int T2FloorInfo::IsThereNoFloorTenant(const RECT&) { +} + +int T2FloorInfo::IsThereMover(const RECT&) { +} + +int T2FloorInfo::IsThereOtherKindMover(const RECT&, int) { +} + +int T2FloorInfo::IsEnoughSideSpace(const RECT&) { +} + +T2Tenant* T2FloorInfo::GetTenant(unsigned int) const { +} + +T2Tenant* T2FloorInfo::GetTenant(int, int) const { +} + +T2Tenant* T2FloorInfo::GetPoolTenant() const { +} + +T2Tenant* T2FloorInfo::GetFloor(int, int) const { +} + +T2Mover* T2FloorInfo::GetMover(unsigned int) { +} + +T2Mover* T2FloorInfo::GetMover(int, int) { +} + +T2MoverModule* T2FloorInfo::GetModule(unsigned int) const { +} + +T2Request* T2FloorInfo::GetRequest(unsigned int) const { +} + +T2Request* T2FloorInfo::GetRequest(int, int) const { +} + +T2People* T2FloorInfo::FindPeople(int, int) const { +} + +T2OutObj* T2FloorInfo::GetOutObj(int, int) const { +} + +T2OutObj* T2FloorInfo::GetIndOutObj(unsigned int) const { +} + +T2Tenant* T2FloorInfo::FindUnusedTenant() { +} + +T2Mover* T2FloorInfo::FindUnusedMover() { +} + +T2Request* T2FloorInfo::FindUnusedRequest() { +} + +T2OutObj* T2FloorInfo::FindUnusedOutObj() { +} + +unsigned int T2FloorInfo::GetTenantID(int, int) const { +} + +unsigned int T2FloorInfo::GetFloorID(int, int) { +} + +unsigned int T2FloorInfo::GetEntranceFloorID(unsigned int) { +} + +POINT T2FloorInfo::GetEntrancePt(unsigned int) { +} + +unsigned int T2FloorInfo::GetMoverID(int, int) { +} + +unsigned int T2FloorInfo::GetRequestID(int, int) const { +} + +unsigned int T2FloorInfo::GetOutObjID(int, int) const { +} + +T2UnitInfo* T2FloorInfo::GetUnitInfo(int, int) const { +} + +void T2FloorInfo::FillTenantID(const RECT&, unsigned int) { +} + +void T2FloorInfo::ReplaceFloorID(const RECT&, unsigned int, unsigned int) { +} + +void T2FloorInfo::FillMoverID(const RECT&, unsigned int) { +} + +void T2FloorInfo::FillRequestID(const RECT&, unsigned int) { +} + +int T2FloorInfo::FillRequestID(POINT, ERequestUpDown, unsigned int) { +} + +void T2FloorInfo::RemoveRequestID(ERequestUpDown, const RECT&) { +} + +void T2FloorInfo::FillOutObjID(const RECT&, unsigned int) { +} + +unsigned int T2FloorInfo::FindTenantID(int, int, int, int, unsigned int) { +} + +int T2FloorInfo::CalcRequestRightEnd(POINT, int) { +} + +int T2FloorInfo::CalcRequestLeftEnd(POINT, int) { +} + +int T2FloorInfo::GetLeftMoverID(POINT, int) const { +} + +void T2FloorInfo::UpdeteRequestByUnionFloor(T2Tenant*, POINT) { +} + +void T2FloorInfo::MoverAreaAdded(const RECT&, unsigned int) { +} + +void T2FloorInfo::MoverAreaRemoved(const RECT&) { +} + +void T2FloorInfo::UpdeteRequestByBuildMover(const RECT&) { +} + +void T2FloorInfo::UpdeteRequestByRemoveMover(const RECT&) { +} + +unsigned int T2FloorInfo::GetNextTenantNumber(int) { +} + +void T2FloorInfo::SetTenantNumber(int, unsigned int) { +} + +T2Tenant* T2FloorInfo::FindNumberredTenant(int, unsigned int) { +} + +void T2FloorInfo::FinishBuildFloor(T2TowerDoc*, const RECT&) { +} + +void T2FloorInfo::SetTenantDrawModeByRect(const RECT&, int) { +} + +void T2FloorInfo::UpdateFloorCEArray(const RECT&, unsigned int, unsigned int) { +} + +int T2FloorInfo::CalcMentenanceCost(T2TowerDoc*) const { +} + +T2Tenant* T2FloorInfo::GetTenantByPID(unsigned long) { +} + +int T2FloorInfo::BuildFinishForce(const RECT&) { +} diff --git a/src/T2DLL/T2FloorInfo.h b/src/T2DLL/T2FloorInfo.h new file mode 100644 index 0000000..b292900 --- /dev/null +++ b/src/T2DLL/T2FloorInfo.h @@ -0,0 +1,86 @@ +#pragma once +#include "common.h" + +class T2FloorInfo { +public: +	T2FloorInfo(const T2WorldDef*); +	virtual ~T2FloorInfo(); +	int UnitToFloor(int) const; +	void InitMask(CResFile&); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); +protected: +	int IsValidRange(const RECT&) const; +public: +	int IsAreaBuildable(const RECT&); +	int IsAllTenant(const RECT&); +	int IsThereNoFloorTenant(const RECT&); +	int IsThereMover(const RECT&); +	int IsThereOtherKindMover(const RECT&, int); +	int IsEnoughSideSpace(const RECT&); +	T2Tenant* GetTenant(unsigned int) const; +	T2Tenant* GetTenant(int, int) const; +	T2Tenant* GetPoolTenant() const; +	T2Tenant* GetFloor(int, int) const; +	T2Mover* GetMover(unsigned int); +	T2Mover* GetMover(int, int); +	T2MoverModule* GetModule(unsigned int) const; +	T2Request* GetRequest(unsigned int) const; +	T2Request* GetRequest(int, int) const; +	T2People* FindPeople(int, int) const; +	T2OutObj* GetOutObj(int, int) const; +	T2OutObj* GetIndOutObj(unsigned int) const; +	T2Tenant* FindUnusedTenant(); +	T2Mover* FindUnusedMover(); +	T2Request* FindUnusedRequest(); +	T2OutObj* FindUnusedOutObj(); +	unsigned int GetTenantID(int, int) const; +	unsigned int GetFloorID(int, int); +	unsigned int GetEntranceFloorID(unsigned int); +	POINT GetEntrancePt(unsigned int); +	unsigned int GetMoverID(int, int); +	unsigned int GetRequestID(int, int) const; +	unsigned int GetOutObjID(int, int) const; +	T2UnitInfo* GetUnitInfo(int, int) const; +	void FillTenantID(const RECT&, unsigned int); +	void ReplaceFloorID(const RECT&, unsigned int, unsigned int); +	void FillMoverID(const RECT&, unsigned int); +	void FillRequestID(const RECT&, unsigned int); +	int FillRequestID(POINT, ERequestUpDown, unsigned int); +	void RemoveRequestID(ERequestUpDown, const RECT&); +	void FillOutObjID(const RECT&, unsigned int); +	unsigned int FindTenantID(int, int, int, int, unsigned int); +protected: +	int CalcRequestRightEnd(POINT, int); +	int CalcRequestLeftEnd(POINT, int); +public: +	int GetLeftMoverID(POINT, int) const; +	void UpdeteRequestByUnionFloor(T2Tenant*, POINT); +	void MoverAreaAdded(const RECT&, unsigned int); +	void MoverAreaRemoved(const RECT&); +	void UpdeteRequestByBuildMover(const RECT&); +	void UpdeteRequestByRemoveMover(const RECT&); +	unsigned int GetNextTenantNumber(int); +	void SetTenantNumber(int, unsigned int); +	T2Tenant* FindNumberredTenant(int, unsigned int); +	void FinishBuildFloor(T2TowerDoc*, const RECT&); +	void SetTenantDrawModeByRect(const RECT&, int); +	void UpdateFloorCEArray(const RECT&, unsigned int, unsigned int); +	int CalcMentenanceCost(T2TowerDoc*) const; +	T2Tenant* GetTenantByPID(unsigned long); +	int BuildFinishForce(const RECT&); + +	int GetVRange() const {} +	int GetHRange() const {} +	int GetGroundLine() const {} +	int GetTopFloorLine() const {} +	int GetBottomFloorLine() const {} +	int GetEntranceWidth() const {} +	void GetBuildArea(RECT&) const {} +	void GetFloorArea(RECT&) const {} +	T2TenantArrayList* GetTenantArrayList() const {} +	T2MoverArrayList* GetMoverArrayList() const {} +	T2RequestArrayList* GetRequestArrayList() const {} +	T2OutObjArrayList* GetOutObjArrayList() const {} +	T2OutsideInfo* GetOutsideInfo() const {} +}; diff --git a/src/T2DLL/T2FloorNumberTable.cpp b/src/T2DLL/T2FloorNumberTable.cpp new file mode 100644 index 0000000..4a49252 --- /dev/null +++ b/src/T2DLL/T2FloorNumberTable.cpp @@ -0,0 +1,40 @@ +#include "T2FloorNumberTable.h" + +T2FloorNumberTable::T2FloorNumberTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2FloorNumberTable::~T2FloorNumberTable() { +} + +/*virtual*/ int T2FloorNumberTable::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +void T2FloorNumberTable::SetMover(T2Mover*) { +} + +void T2FloorNumberTable::SetMoverModuleTable(T2MoverModuleTable*) { +} + +int T2FloorNumberTable::GetVScrValue() { +} + +void T2FloorNumberTable::ClickCell(const TableCellT&, POINT) { +} + +void T2FloorNumberTable::RefreshCell(int) { +} + +/*virtual*/ void T2FloorNumberTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ int T2FloorNumberTable::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2FloorNumberTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2FloorNumberTable::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2FloorNumberTable::OnT2DlgItemMouseMove(unsigned int, CPoint) { +} diff --git a/src/T2DLL/T2FloorNumberTable.h b/src/T2DLL/T2FloorNumberTable.h new file mode 100644 index 0000000..cd4d18f --- /dev/null +++ b/src/T2DLL/T2FloorNumberTable.h @@ -0,0 +1,22 @@ +#pragma once +#include "common.h" + +class T2FloorNumberTable { +public: +	T2FloorNumberTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2FloorNumberTable(); +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +	void SetMover(T2Mover*); +	void SetMoverModuleTable(T2MoverModuleTable*); +protected: +	int GetVScrValue(); +public: +	void ClickCell(const TableCellT&, POINT); +	void RefreshCell(int); +protected: +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemMouseMove(unsigned int, CPoint); +}; diff --git a/src/T2DLL/T2FloorPtrList.cpp b/src/T2DLL/T2FloorPtrList.cpp new file mode 100644 index 0000000..b72c96f --- /dev/null +++ b/src/T2DLL/T2FloorPtrList.cpp @@ -0,0 +1,10 @@ +#include "T2FloorPtrList.h" + +T2FloorPtrList::T2FloorPtrList(T2TenantArrayList*) { +} + +/*virtual*/ T2FloorPtrList::~T2FloorPtrList() { +} + +int T2FloorPtrList::CalcDistance(int, int) { +} diff --git a/src/T2DLL/T2FloorPtrList.h b/src/T2DLL/T2FloorPtrList.h new file mode 100644 index 0000000..43eb021 --- /dev/null +++ b/src/T2DLL/T2FloorPtrList.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2FloorPtrList { +public: +	T2FloorPtrList(T2TenantArrayList*); +	virtual ~T2FloorPtrList(); +	int CalcDistance(int, int); + +	T2FloorPtrList(const T2FloorPtrList&) {} +	T2FloorPtrList& operator=(const T2FloorPtrList&) {} +}; diff --git a/src/T2DLL/T2GlobalData.cpp b/src/T2DLL/T2GlobalData.cpp new file mode 100644 index 0000000..549230d --- /dev/null +++ b/src/T2DLL/T2GlobalData.cpp @@ -0,0 +1,28 @@ +#include "T2GlobalData.h" + +T2GlobalData::T2GlobalData() { +} + +/*virtual*/ T2GlobalData::~T2GlobalData() { +} + +void T2GlobalData::Set1stCinemaDate(int) { +} + +void T2GlobalData::RegistMovie(unsigned long, int) { +} + +int T2GlobalData::GetMovieParam(unsigned long) { +} + +void T2GlobalData::Read(T2Archive&) { +} + +void T2GlobalData::Write(T2Archive&) { +} + +int T2GlobalData::IsCheckSerial() { +} + +int T2GlobalData::Check_Serial(char*) { +} diff --git a/src/T2DLL/T2GlobalData.h b/src/T2DLL/T2GlobalData.h new file mode 100644 index 0000000..5f4f8a3 --- /dev/null +++ b/src/T2DLL/T2GlobalData.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" + +class T2GlobalData { +public: +	T2GlobalData(); +	virtual ~T2GlobalData(); +	void Set1stCinemaDate(int); +	void RegistMovie(unsigned long, int); +	int GetMovieParam(unsigned long); +protected: +	void Read(T2Archive&); +	void Write(T2Archive&); +public: +	int IsCheckSerial(); +protected: +	int Check_Serial(char*); + +public: +	int Get1stCinemaDate() {} +	T2GlobalData(const T2GlobalData&) {} +	T2GlobalData& operator=(const T2GlobalData&) {} +}; diff --git a/src/T2DLL/T2GuestroomTable.cpp b/src/T2DLL/T2GuestroomTable.cpp new file mode 100644 index 0000000..e7dbf5b --- /dev/null +++ b/src/T2DLL/T2GuestroomTable.cpp @@ -0,0 +1,115 @@ +#include "T2GuestroomTable.h" + +/*virtual*/ int T2GuestroomTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +T2GuestroomTable::T2GuestroomTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2GuestroomTable::~T2GuestroomTable() { +} + +/*virtual*/ void T2GuestroomTable::Add(T2GuestroomItem*) { +} + +/*virtual*/ void T2GuestroomTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ void T2GuestroomTable::DrawCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2GuestroomTable::ClickCell(const TableCellT&, const CPoint&) { +} + +/*virtual*/ void T2GuestroomTable::AddList(T2Tenant*, int) { +} + +/*virtual*/ void T2GuestroomTable::ValidRelation() { +} + +/*virtual*/ void T2GuestroomTable::RevertRelation() { +} + +/*virtual*/ void T2GuestroomTable::ResetRoomList(int) { +} + +/*virtual*/ int T2GuestroomTable::CountRooms(int, int) { +} + +/*virtual*/ void T2GuestroomTable::ToggleRelation(const TableCellT&, int) { +} + +/*virtual*/ void T2GuestroomTable::SetInMoneyIndex(int) { +} + +/*virtual*/ int T2GuestroomTable::GetInMoneyIndex(int) { +} + +/*virtual*/ int T2GuestroomTable::CalcInMoney(int) { +} + +void T2GuestroomTable::UpdateTenantEstimation(T2TowerDoc*, int) { +} + +/*virtual*/ void T2GuestroomTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ int T2GuestroomTable::OnT2DlgItemEraseBkgnd(CDC*) { +} + +T2GuestroomItem::T2GuestroomItem(T2Tenant*, int, long) { +} + +int T2GuestroomItem::GetRoomNumber() { +} + +int T2GuestroomItem::GetRoomStatus() { +} + +int T2GuestroomItem::GetCapacity() { +} + +int T2GuestroomItem::GetRoomType() { +} + +/*static*/ int T2GuestroomItem::GetRoomType(T2Tenant*) { +} + +void T2GuestroomItem::ToggleRelation(int) { +} + +int T2GuestroomItem::IsRelation() { +} + +int T2GuestroomItem::WasRelation() { +} + +void T2GuestroomItem::ValidRelation() { +} + +void T2GuestroomItem::InvalidRelation() { +} + +void T2GuestroomItem::RevertRelation() { +} + +int T2GuestroomItem::IsFreeRelation() { +} + +int T2GuestroomItem::IsStay() { +} + +void T2GuestroomItem::SetInMoneyIndex(int) { +} + +int T2GuestroomItem::GetInMoneyIndex() { +} + +int T2GuestroomItem::GetInMoney() { +} + +int T2GuestroomItem::GetOutMoney() { +} + +void T2GuestroomItem::UpdateTenantEstimation(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2GuestroomTable.h b/src/T2DLL/T2GuestroomTable.h new file mode 100644 index 0000000..5b515da --- /dev/null +++ b/src/T2DLL/T2GuestroomTable.h @@ -0,0 +1,57 @@ +#pragma once +#include "common.h" + +class T2GuestroomTable { +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	T2GuestroomTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2GuestroomTable(); +	virtual void Add(T2GuestroomItem*); +protected: +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual void DrawCell(CDC*, const TableCellT&); +	virtual void ClickCell(const TableCellT&, const CPoint&); +public: +	virtual void AddList(T2Tenant*, int); +	virtual void ValidRelation(); +	virtual void RevertRelation(); +	virtual void ResetRoomList(int); +	virtual int CountRooms(int, int); +	virtual void ToggleRelation(const TableCellT&, int); +	virtual void SetInMoneyIndex(int); +	virtual int GetInMoneyIndex(int); +	virtual int CalcInMoney(int); +	void UpdateTenantEstimation(T2TowerDoc*, int); +protected: +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual void SetFront(unsigned int) {} +}; +class T2GuestroomItem { +public: +	T2GuestroomItem(T2Tenant*, int, long); +	int GetRoomNumber(); +	int GetRoomStatus(); +	int GetCapacity(); +	int GetRoomType(); +	static int GetRoomType(T2Tenant*); +	void ToggleRelation(int); +	int IsRelation(); +	int WasRelation(); +	void ValidRelation(); +	void InvalidRelation(); +	void RevertRelation(); +	int IsFreeRelation(); +	int IsStay(); +	void SetInMoneyIndex(int); +	int GetInMoneyIndex(); +	int GetInMoney(); +	int GetOutMoney(); +	void UpdateTenantEstimation(T2TowerDoc*); + +	T2Tenant* GetTenant() {} +	T2GuestroomItem& operator=(const T2GuestroomItem&) {} +}; diff --git a/src/T2DLL/T2HallEventPlugin.cpp b/src/T2DLL/T2HallEventPlugin.cpp new file mode 100644 index 0000000..8001663 --- /dev/null +++ b/src/T2DLL/T2HallEventPlugin.cpp @@ -0,0 +1,16 @@ +#include "T2HallEventPlugin.h" + +T2HallEventPlugin::T2HallEventPlugin(unsigned long, T2PluginSpecifier&) { +} + +/*virtual*/ T2HallEventPlugin::~T2HallEventPlugin() { +} + +/*virtual*/ void T2HallEventPlugin::LoadRsrcFromStream(CResFile&) { +} + +void T2HallEventPlugin::UnfoldPluginSelf() { +} + +/*virtual*/ unsigned long T2HallEventPlugin::LoadSelf() { +} diff --git a/src/T2DLL/T2HallEventPlugin.h b/src/T2DLL/T2HallEventPlugin.h new file mode 100644 index 0000000..61cafdd --- /dev/null +++ b/src/T2DLL/T2HallEventPlugin.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2HallEventPlugin { +public: +	T2HallEventPlugin(unsigned long, T2PluginSpecifier&); +	virtual ~T2HallEventPlugin(); +protected: +	virtual void LoadRsrcFromStream(CResFile&); +public: +	void UnfoldPluginSelf(); +	virtual unsigned long LoadSelf(); + +	unsigned int GetRsrcType() {} +	virtual int GetBindTime() {} +	T2HallEventPlugin& operator=(T2HallEventPlugin&) {} +}; diff --git a/src/T2DLL/T2HallEventTable.cpp b/src/T2DLL/T2HallEventTable.cpp new file mode 100644 index 0000000..d77a1a9 --- /dev/null +++ b/src/T2DLL/T2HallEventTable.cpp @@ -0,0 +1,64 @@ +#include "T2HallEventTable.h" + +/*virtual*/ int T2HallEventTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +T2HallEventTable::T2HallEventTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2HallEventTable::~T2HallEventTable() { +} + +/*virtual*/ void T2HallEventTable::Add(T2HallEventPlugin*) { +} + +/*virtual*/ void T2HallEventTable::Add(const char*) { +} + +/*virtual*/ void T2HallEventTable::Add(CFilePluginList*) { +} + +/*virtual*/ void T2HallEventTable::SetCellData(const TableCellT&, T2HallEventPlugin*, const char*) { +} + +/*virtual*/ void T2HallEventTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ void T2HallEventTable::DrawCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2HallEventTable::ClickCell(const TableCellT&, const CPoint&) { +} + +/*virtual*/ void T2HallEventTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ int T2HallEventTable::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ int T2MonthlyTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +T2MonthlyTable::T2MonthlyTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2MonthlyTable::~T2MonthlyTable() { +} + +void T2MonthlyTable::SetStartMonth(T2TowerDoc*, int) { +} + +/*virtual*/ void T2MonthlyTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ void T2MonthlyTable::DrawCell(CDC*, const TableCellT&) { +} + +void T2MonthlyTable::ClickCell(const TableCellT&, const CPoint&) { +} + +/*virtual*/ void T2MonthlyTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ int T2MonthlyTable::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2HallEventTable.h b/src/T2DLL/T2HallEventTable.h new file mode 100644 index 0000000..d46219f --- /dev/null +++ b/src/T2DLL/T2HallEventTable.h @@ -0,0 +1,39 @@ +#pragma once +#include "common.h" + +class T2HallEventTable { +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	T2HallEventTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2HallEventTable(); +	virtual void Add(T2HallEventPlugin*); +	virtual void Add(const char*); +	virtual void Add(CFilePluginList*); +	virtual void SetCellData(const TableCellT&, T2HallEventPlugin*, const char*); +protected: +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual void DrawCell(CDC*, const TableCellT&); +	virtual void ClickCell(const TableCellT&, const CPoint&); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	void SetUserCon(int) {} +protected: +	int GetUserCon() {} +}; +class T2MonthlyTable { +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	T2MonthlyTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2MonthlyTable(); +	void SetStartMonth(T2TowerDoc*, int); +protected: +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual void DrawCell(CDC*, const TableCellT&); +	void ClickCell(const TableCellT&, const CPoint&); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +}; diff --git a/src/T2DLL/T2HaveOutViewObject.cpp b/src/T2DLL/T2HaveOutViewObject.cpp new file mode 100644 index 0000000..992d575 --- /dev/null +++ b/src/T2DLL/T2HaveOutViewObject.cpp @@ -0,0 +1,68 @@ +#include "T2HaveOutViewObject.h" +#include "T2ToolDef.h" +#include "T2TowerDoc.h" + +T2HaveOutViewObject::T2HaveOutViewObject() { +	mToolDef = NULL; +	mRefCon = 0; +	mSubPlugin = NULL; +	mValiation = 0; +} + +/*virtual*/ T2HaveOutViewObject::~T2HaveOutViewObject() { +} + +int T2HaveOutViewObject::GetRefCon() { +	return mRefCon; +} + +void T2HaveOutViewObject::SetRefCon(int refCon) { +	mRefCon = refCon; +} + +CResourcePlugin* T2HaveOutViewObject::GetSubPlugin() const { +	return mSubPlugin; +} + +void T2HaveOutViewObject::SetSubPlugin(CResourcePlugin* plugin) { +	mSubPlugin = plugin; +} + +T2ToolDef* T2HaveOutViewObject::GetToolDef() const { +	return mToolDef; +} + +void T2HaveOutViewObject::SetToolDef(T2ToolDef* toolDef) { +	mToolDef = toolDef; +} + +/*virtual*/ void T2HaveOutViewObject::DrawOutView(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ void T2HaveOutViewObject::SetUsed(int used) { +	T2Object::SetUsed(used); + +	if (GetToolDef()) { +		if (used) +			GetToolDef()->DoStartUse(); +		else +			GetToolDef()->DoEndUse(); +	} +} + +/*virtual*/ void T2HaveOutViewObject::InitLoaded() { +	T2Object::InitLoaded(); + +	if (IsUsed() && GetToolDef()) +		GetToolDef()->DoStartUse(); +} + +int T2HaveOutViewObject::CalcMentenanceCost(T2TowerDoc* towerDoc) const { +	int cost = 0; +#line 144 +	ASSERT(mToolDef); + +	cost = mToolDef->CalcMentenanceCostProc(this); +	towerDoc->DoPayTool(cost, 0, mToolDef); +	return cost; +} diff --git a/src/T2DLL/T2HaveOutViewObject.h b/src/T2DLL/T2HaveOutViewObject.h new file mode 100644 index 0000000..f0508a5 --- /dev/null +++ b/src/T2DLL/T2HaveOutViewObject.h @@ -0,0 +1,29 @@ +#pragma once +#include "common.h" +#include "T2DrawableObject.h" + +class T2HaveOutViewObject : public T2DrawableObject { +public: +	T2HaveOutViewObject(); +	virtual ~T2HaveOutViewObject(); +	virtual void DrawOutView(T2TowerDoc*, const RECT&); + +	int GetRefCon(); +	void SetRefCon(int); +	CResourcePlugin* GetSubPlugin() const; +	void SetSubPlugin(CResourcePlugin*); +	T2ToolDef* GetToolDef() const; +	void SetToolDef(T2ToolDef*); +	int CalcMentenanceCost(T2TowerDoc*) const; + +	unsigned int GetValiation() const { return mValiation; } + +protected: +	virtual void SetUsed(int); +	virtual void InitLoaded(); + +	T2ToolDef *mToolDef; +	int mRefCon; +	CResourcePlugin *mSubPlugin; +	unsigned int mValiation; +}; diff --git a/src/T2DLL/T2ImageObj.cpp b/src/T2DLL/T2ImageObj.cpp new file mode 100644 index 0000000..cea6308 --- /dev/null +++ b/src/T2DLL/T2ImageObj.cpp @@ -0,0 +1,394 @@ +#include "GlobalFunc.h" +#include "T2BitImage.h" +#include "T2ImageObj.h" + +T2ImageObj::T2ImageObj() { +	mCount = 0; +	mHandle = GlobalAlloc(GHND, 1); +	mData = (ObjectData *) GlobalLock(mHandle); +} + +/*virtual*/ T2ImageObj::~T2ImageObj() { +	GlobalUnlock(mHandle); +	GlobalFree(mHandle); +} + +void T2ImageObj::AddObject(HINSTANCE instance, unsigned int resourceID, T2BitImage* image) { +#line 36 +	_ASSERT(image); + +	HRSRC rsrc = FindResource(instance, MAKEINTRESOURCE(resourceID), "OBJMAP"); +	if (!rsrc) { +		CString nameStr; +		nameStr.Format("%d", resourceID); + +		CString err = "T2ImageObj::AddObject ERROR : " + nameStr + " @" + GetModuleName(instance) + "\n"; +		OutputDebugString(err); +	} + +#line 45 +	_ASSERT(rsrc); + +	HGLOBAL h = LoadResource(instance, rsrc); +#line 47 +	_ASSERT(h); + +	void *resData = LockResource(h); +	DWORD size = SizeofResource(instance, rsrc); +	char *buffer = (char *) malloc(size); +	memcpy(buffer, resData, size); +	UnlockResource(h); +	FreeResource(h); + +	char *token = strtok(buffer, " \t\r\n\x1A"); +	while (token) { +		if (!_stricmp(token, "End")) +			break; + +		if (!_stricmp(token, "DefParts")) { +			mCount++; +			mHandle = GlobalReAlloc(mHandle, mCount * sizeof(ObjectData), GHND); +			mData = (ObjectData *) GlobalLock(mHandle); +			memset(&mData[mCount - 1], 0, sizeof(ObjectData)); + +			mData[mCount - 1].image = image; +			strcpy(mData[mCount - 1].name, ""); +			mData[mCount - 1].id = 0; +			mData[mCount - 1].pattern = -1; +			mData[mCount - 1].grade = 0; +			mData[mCount - 1].span = 0; +			mData[mCount - 1].offset = -1; +		} else if (!_stricmp(token, "Name")) { +			strcpy(mData[mCount - 1].name, strtok(NULL, "\t\r\n\x1A")); +		} else if (!_stricmp(token, "ID")) { +			mData[mCount - 1].id = atoi(strtok(NULL, " \t\r\n\x1A")); +		} else if (!_stricmp(token, "Pattern")) { +			mData[mCount - 1].pattern = atoi(strtok(NULL, " \t\r\n\x1A")); +		} else if (!_stricmp(token, "Grade")) { +			mData[mCount - 1].grade = atoi(strtok(NULL, " \t\r\n\x1A")); +		} else if (!_stricmp(token, "Span")) { +			mData[mCount - 1].span = atoi(strtok(NULL, " \t\r\n\x1A")); +		} else if (!_stricmp(token, "Offset")) { +			mData[mCount - 1].offset = atoi(strtok(NULL, " \t\r\n\x1A")); +		} else if (!_stricmp(token, "Roof")) { +			if (!_stricmp(strtok(NULL, " \t\r\n\x1A"), "Yes")) +				mData[mCount - 1].roof = true; +		} else if (!_stricmp(token, "Floor")) { +			if (!_stricmp(strtok(NULL, " \t\r\n\x1A"), "Yes")) +				mData[mCount - 1].floor = true; +		} else if (!_stricmp(token, "List")) { +			// nothing +		} else if (!_stricmp(token, "Loop")) { +			mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].flags |= SPD_LOOP; +		} else if (!_stricmp(token, "Transparent")) { +			mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].flags |= SPD_TRANSPARENT; +		} else if (!_stricmp(token, "Halftone")) { +			mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].flags |= SPD_HALFTONE; +		} else if (!_stricmp(token, "Rect")) { +			mData[mCount - 1].subPartCount++; +			mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].flags = SPD_RECT; + +			char *argToken = strtok(NULL, " \t\r\n\x1A"); +			char *arg = (char *) malloc(strlen(argToken) + 1); +			strcpy(arg, argToken); + +			char *p; +			while ((p = strchr(arg, ','))) +				*p = ' '; + +			sscanf( +				arg, +				"%hd %hd %hd %hd", +				&mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].left, +				&mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].top, +				&mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].right, +				&mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].bottom +			); + +			free(arg); +		} else if (!_stricmp(token, "Parts")) { +			char *argToken = strtok(NULL, " \t\r\n\x1A"); +			if (argToken[0] != '#') { +				int i; +				for (i = 0; i < (mCount - 1); i++) { +					if (!strcmp(mData[i].name, argToken)) { +						mData[mCount - 1].subPartCount++; +						mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].flags = SPD_PARTS_BY_NAME; +						mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].partIndex = i; +						break; +					} +				} + +				if (i == (mCount - 1)) { +					char buf[256]; +					wsprintf(buf, "Undefined parts [%s]", argToken); +					MessageBox(NULL, buf, "ERROR", MB_OK | MB_ICONWARNING | MB_TASKMODAL); +				} +			} else { +				mData[mCount - 1].subPartCount++; +				mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].flags = SPD_PARTS_BY_ID; +				mData[mCount - 1].subParts[mData[mCount - 1].subPartCount - 1].objectID = atoi(&argToken[1]); +			} +		} else if (token[0] == '#') { +			// nothing +		} else { +			char buf[256]; +			wsprintf(buf, "Undefined token [%s]", token); +			MessageBox(NULL, buf, "ERROR", MB_OK | MB_ICONWARNING | MB_TASKMODAL); +		} + +		token = strtok(NULL, " \t\r\n\x1A"); +	} + +	free(buffer); +} + +void T2ImageObj::AddObject(const char* name, int pattern, T2BitImage& image, const RECT* rect, BOOL transparent, BOOL halftoneMode) { +	mCount++; +	mHandle = GlobalReAlloc(mHandle, mCount * sizeof(ObjectData), GHND); +	mData = (ObjectData *) GlobalLock(mHandle); +	memset(&mData[mCount - 1], 0, sizeof(ObjectData)); + +	mData[mCount - 1].image = ℑ +	strcpy(mData[mCount - 1].name, name); +	mData[mCount - 1].id = 0; +	mData[mCount - 1].pattern = pattern; +	mData[mCount - 1].grade = 0; +	mData[mCount - 1].span = 0; +	mData[mCount - 1].offset = -1; +	mData[mCount - 1].subPartCount = 1; +	mData[mCount - 1].subParts[0].flags = +		SPD_RECT | +		(transparent ? SPD_TRANSPARENT : 0) | +		(halftoneMode ? SPD_HALFTONE : 0); + +	if (rect) { +		mData[mCount - 1].subParts[0].top = rect->top; +		mData[mCount - 1].subParts[0].left = rect->left; +		mData[mCount - 1].subParts[0].bottom = rect->bottom; +		mData[mCount - 1].subParts[0].right = rect->right; +	} else { +		mData[mCount - 1].subParts[0].top = 0; +		mData[mCount - 1].subParts[0].left = 0; +		mData[mCount - 1].subParts[0].bottom = abs(image.mBitmap.header.biHeight); +		mData[mCount - 1].subParts[0].right = abs(image.mBitmap.header.biWidth); +	} +} + +void T2ImageObj::AddObject(int id, int pattern, T2BitImage& image, const RECT* rect, BOOL transparent, BOOL halftoneMode) { +	mCount++; +	mHandle = GlobalReAlloc(mHandle, mCount * sizeof(ObjectData), GHND); +	mData = (ObjectData *) GlobalLock(mHandle); +	memset(&mData[mCount - 1], 0, sizeof(ObjectData)); + +	mData[mCount - 1].image = ℑ +	strcpy(mData[mCount - 1].name, ""); +	mData[mCount - 1].id = id; +	mData[mCount - 1].pattern = pattern; +	mData[mCount - 1].grade = 0; +	mData[mCount - 1].span = 0; +	mData[mCount - 1].offset = -1; +	mData[mCount - 1].subPartCount = 1; +	mData[mCount - 1].subParts[0].flags = +		SPD_RECT | +		(transparent ? SPD_TRANSPARENT : 0) | +		(halftoneMode ? SPD_HALFTONE : 0); + +	if (rect) { +		mData[mCount - 1].subParts[0].top = rect->top; +		mData[mCount - 1].subParts[0].left = rect->left; +		mData[mCount - 1].subParts[0].bottom = rect->bottom; +		mData[mCount - 1].subParts[0].right = rect->right; +	} else { +		mData[mCount - 1].subParts[0].top = 0; +		mData[mCount - 1].subParts[0].left = 0; +		mData[mCount - 1].subParts[0].bottom = abs(image.mBitmap.header.biHeight); +		mData[mCount - 1].subParts[0].right = abs(image.mBitmap.header.biWidth); +	} +} + +int T2ImageObj::FindObject(int id, int pattern, int grade, int span, int offset) { +	ObjectData *obj = mData; +	int index; + +	for (index = 0; index < mCount; index++, obj++) { +		if ( +			(obj->id == id) && +			(obj->pattern == pattern || obj->pattern == -1 || pattern == -1) && +			(obj->grade == grade || obj->grade == 0 || grade == 0) && +			(obj->span == span || obj->span == 0 || span == 0) && +			(obj->offset == offset || obj->offset == 255 || offset == 255) +		) +			break; +	} + +	if (index == mCount) +		return -1; +	else +		return index; +} + +int T2ImageObj::FindObject(const char* name, int pattern, int grade, int span, int offset) { +	ObjectData *obj = mData; +	int index; + +	for (index = 0; index < mCount; index++, obj++) { +		if ( +			!strcmp(obj->name, name) && +			(obj->pattern == pattern || obj->pattern == -1 || pattern == -1) && +			(obj->grade == grade || obj->grade == 0 || grade == 0) && +			(obj->span == span || obj->span == 0 || span == 0) && +			(obj->offset == offset || obj->offset == 255 || offset == 255) +		) +			break; +	} + +	if (index == mCount) +		return -1; +	else +		return index; +} + +void T2ImageObj::EnumParts(int index, int width, PARTSLIST* outParts, int* outCount) { +#line 272 +	_ASSERT(index >= 0); + +	int i = 0; +	width = width * 8; + +	while (width > 0 && i < mData[index].subPartCount) { +		if (mData[index].subParts[i].flags & SPD_RECT) { +			// Draw a piece of the image +			outParts[*outCount].image = mData[index].image; +			outParts[*outCount].rect.top = mData[index].subParts[i].top; +			outParts[*outCount].rect.left = mData[index].subParts[i].left; +			outParts[*outCount].rect.bottom = mData[index].subParts[i].bottom; +			outParts[*outCount].rect.right = mData[index].subParts[i].right; + +			if ((mData[index].subParts[i].flags & SPD_TRANSPARENT) == 0) +				outParts[*outCount].transparent = false; +			else +				outParts[*outCount].transparent = true; + +			if ((mData[index].subParts[i].flags & SPD_HALFTONE) == 0) +				outParts[*outCount].halftoneMode = false; +			else +				outParts[*outCount].halftoneMode = true; + +			width -= (outParts[*outCount].rect.right - outParts[*outCount].rect.left); +			(*outCount)++; +		} else if (mData[index].subParts[i].flags & SPD_PARTS_BY_NAME) { +			// Include another part list +			int prevCount = *outCount; +			EnumParts(mData[index].subParts[i].partIndex, width, outParts, outCount); +			for (; prevCount < *outCount; prevCount++) +				width -= (outParts[prevCount].rect.right - outParts[prevCount].rect.left); +		} else if (mData[index].subParts[i].flags & SPD_PARTS_BY_ID) { +			// Search for an object and include its part list +			int prevCount = *outCount; +			EnumParts(FindObject(mData[index].subParts[i].objectID, -1, 0, 0, 255), width, outParts, outCount); +			for (; prevCount < *outCount; prevCount++) +				width -= (outParts[prevCount].rect.right - outParts[prevCount].rect.left); +		} + +		if (!(mData[index].subParts[i].flags & SPD_LOOP)) +			i++; +	} +} + +BOOL T2ImageObj::WithRoof(int index) { +	return mData[index].roof; +} + +BOOL T2ImageObj::WithFloor(int index) { +	return mData[index].floor; +} + +void T2ImageObj::DrawObject(T2BitImage* image, int index, RECT rect, int factor, int foreGndColor) { +	DrawObject(image, index, rect, factor, false, foreGndColor); +} + +void T2ImageObj::DrawObject(CDC* dc, int index, RECT rect, int factor, int foreGndColor) { +	DrawObject(dc, index, rect, factor, true, foreGndColor); +} + +void T2ImageObj::DrawObject(void* target, int index, RECT rect, int factor, BOOL targetIsDC, int foreGndColor) { +#line 338 +	_ASSERT(index >= 0); + +	static PARTSLIST parts[500]; +	int width = rect.right - rect.left; +	int num = 0; +	EnumParts(index, width, parts, &num); + +	if (num >= 500) +		MessageBox(NULL, "Too many parts", "T2ImageObj::DrawObject", MB_OK | MB_ICONERROR | MB_TASKMODAL); + +	for (int i = 0; i < num; i++) { +		RECT srcRect = parts[i].rect; +		RECT destRect = srcRect; + +		if ((srcRect.right - srcRect.left) > ((destRect.right - destRect.left) << factor)) +			srcRect.right = srcRect.left + ((destRect.right - destRect.left) << factor); + +		if ((destRect.right - destRect.left) > ((srcRect.right - srcRect.left) >> factor)) +			destRect.right = destRect.left + ((srcRect.right - srcRect.left) >> factor); + +		if ((srcRect.bottom - srcRect.top) > ((destRect.bottom - destRect.top) << factor)) +			srcRect.bottom = srcRect.top + ((destRect.bottom - destRect.top) << factor); + +		if ((destRect.bottom - destRect.top) > ((srcRect.bottom - srcRect.top) >> factor)) +			destRect.bottom = destRect.top + ((srcRect.bottom - srcRect.top) >> factor); + +		if (parts[i].transparent) +			parts[i].image->SetBackGndColor(0); +		else +			parts[i].image->SetBackGndColor(-1); + +		if (parts[i].halftoneMode) +			parts[i].image->SetHalftoneMode(true); +		else +			parts[i].image->SetHalftoneMode(false); + +		parts[i].image->SetForeGndColor(foreGndColor); +		if (targetIsDC) { +			parts[i].image->CopyImage((CDC *) target, srcRect, destRect, false, NULL); +		} else { +			parts[i].image->CopyImage(*((T2BitImage *) target), srcRect, destRect, false, NULL); +		} +		parts[i].image->SetHalftoneMode(false); + +		rect.left += (destRect.right - destRect.left); +	} +} + +BOOL T2ImageObj::GetObjectSize(int index, SIZE* outSize) { +#line 383 +	_ASSERT(index >= 0); + +	PARTSLIST part; +	int num = 0; +	EnumParts(index, 1, &part, &num); + +	if (num != 1) +		return false; + +	outSize->cx = part.rect.right - part.rect.left; +	outSize->cy = part.rect.bottom - part.rect.top; +	return true; +} + +T2BitImage* T2ImageObj::GetObjectImage(int index, RECT& outRect) { +#line 397 +	_ASSERT(index >= 0); + +	PARTSLIST part; +	int num = 0; +	EnumParts(index, 1, &part, &num); + +	if (num != 1) +		return NULL; + +	outRect = part.rect; +	return part.image; +} diff --git a/src/T2DLL/T2ImageObj.h b/src/T2DLL/T2ImageObj.h new file mode 100644 index 0000000..b954df8 --- /dev/null +++ b/src/T2DLL/T2ImageObj.h @@ -0,0 +1,72 @@ +#pragma once +#include "common.h" + +struct PARTSLIST { +	T2BitImage *image; +	RECT rect; +	BOOL transparent; +	BOOL halftoneMode; +}; + +// unknown name +struct SubPartData { +	unsigned char flags; +	union { +		struct { +			short top; +			short left; +			short bottom; +			short right; +		}; +		int partIndex; +		int objectID; +	}; +}; + +#define SPD_PARTS_BY_NAME 1 +#define SPD_PARTS_BY_ID 2 +#define SPD_RECT 4 + +#define SPD_HALFTONE 0x20 +#define SPD_TRANSPARENT 0x40 +#define SPD_LOOP 0x80 + +// unknown name +struct ObjectData { +	char name[32]; +	int id; +	int pattern; +	unsigned char grade; +	unsigned char span; +	unsigned char offset; +	unsigned char roof; +	unsigned char floor; +	T2BitImage *image; +	unsigned char subPartCount; +	SubPartData subParts[4]; +}; + +class DLL_EXPORT T2ImageObj { +public: +	T2ImageObj(); +	virtual ~T2ImageObj(); +	void AddObject(HINSTANCE instance, unsigned int resourceID, T2BitImage* image); +	void AddObject(const char* name, int pattern, T2BitImage& image, const RECT* rect, BOOL transparent, BOOL halftoneMode); +	void AddObject(int id, int pattern, T2BitImage& image, const RECT* rect, BOOL transparent, BOOL halftoneMode); +	int FindObject(int id, int pattern, int grade, int span, int offset); +	int FindObject(const char* name, int pattern, int grade, int span, int offset); +	void EnumParts(int, int, PARTSLIST*, int*); +	BOOL WithRoof(int index); +	BOOL WithFloor(int index); +	void DrawObject(T2BitImage* image, int index, RECT rect, int factor, int foreGndColor); +	void DrawObject(CDC* dc, int index, RECT rect, int factor, int foreGndColor); +	BOOL GetObjectSize(int index, SIZE* outSize); +	T2BitImage* GetObjectImage(int index, RECT& outRect); + +protected: +	void DrawObject(void* target, int index, RECT rect, int factor, BOOL targetIsDC, int foreGndColor); + +	int mCount; +	ObjectData *mData; +	HANDLE mHandle; +}; diff --git a/src/T2DLL/T2InfoDialog.cpp b/src/T2DLL/T2InfoDialog.cpp new file mode 100644 index 0000000..60ba8e8 --- /dev/null +++ b/src/T2DLL/T2InfoDialog.cpp @@ -0,0 +1,30 @@ +#include "T2Equip.h" +#include "T2EquipDef.h" +#include "T2InfoDialog.h" + +T2InfoDialog::T2InfoDialog(T2DrawableObject* object) { +	mDeleteOnClose = true; +	mObject = object; +} + +/*virtual*/ T2InfoDialog::~T2InfoDialog() { +} + +/*virtual*/ void T2InfoDialog::GetCommentString(unsigned int id, CString& outStr) const { +	char buf[256]; +	int size = 256; +	HINSTANCE hInstance = NULL; + +	if (id < 0x10000001) { +		hInstance = AfxGetInstanceHandle(); +	} else { +		hInstance = ((T2Equip *) mObject)->GetEquipDef()->GetModuleHandle(); +		id -= 0x10000001; +	} + +	int result = LoadString(hInstance, id + 1023, buf, size); +	if (result) +		outStr = buf; +	else +		outStr = "調整ä¸ã§ã™ã€‚"; +} diff --git a/src/T2DLL/T2InfoDialog.h b/src/T2DLL/T2InfoDialog.h new file mode 100644 index 0000000..f7e41c3 --- /dev/null +++ b/src/T2DLL/T2InfoDialog.h @@ -0,0 +1,13 @@ +#pragma once +#include "common.h" +#include "T2Dialog.h" + +class T2InfoDialog : public T2Dialog { +public: +	T2InfoDialog(T2DrawableObject* object); +	virtual ~T2InfoDialog(); +protected: +	virtual void GetCommentString(unsigned int, CString&) const; + +	T2DrawableObject *mObject; +}; diff --git a/src/T2DLL/T2Maru_Reggae.cpp b/src/T2DLL/T2Maru_Reggae.cpp new file mode 100644 index 0000000..fe26eeb --- /dev/null +++ b/src/T2DLL/T2Maru_Reggae.cpp @@ -0,0 +1,43 @@ +#include "T2Maru_Reggae.h" + +T2Maru_Reggae::T2Maru_Reggae(T2TowerEvent*, CResFile*, int) { +} + +/*virtual*/ T2Maru_Reggae::~T2Maru_Reggae() { +} + +/*virtual*/ int T2Maru_Reggae::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2Maru_Reggae::Exec(T2TowerDoc*) { +} + +int T2Maru_Reggae::DoReception(T2TowerDoc*) { +} + +void T2Maru_Reggae::MaruReception(T2TowerDoc*, T2People*) { +} + +void T2Maru_Reggae::ReggaeReception(T2TowerDoc*, T2People*) { +} + +void T2Maru_Reggae::MakeClaimMessage(T2TowerDoc*, T2Tenant*, CString&) { +} + +T2Tenant* T2Maru_Reggae::FindTargetTenant(T2TowerDoc*) { +} + +unsigned int T2Maru_Reggae::FindNextTenant(T2TowerDoc*) { +} + +T2People* T2Maru_Reggae::GetReggaeMan() { +} + +T2Tenant* T2Maru_Reggae::GetVisitTenant() { +} + +/*virtual*/ void T2Maru_Reggae::Write(T2Archive&) { +} + +/*virtual*/ void T2Maru_Reggae::Read(T2Archive&) { +} diff --git a/src/T2DLL/T2Maru_Reggae.h b/src/T2DLL/T2Maru_Reggae.h new file mode 100644 index 0000000..502b042 --- /dev/null +++ b/src/T2DLL/T2Maru_Reggae.h @@ -0,0 +1,27 @@ +#pragma once +#include "common.h" + +class T2Maru_Reggae { +public: +	T2Maru_Reggae(T2TowerEvent*, CResFile*, int); +	virtual ~T2Maru_Reggae(); +	virtual int Start(T2TowerDoc*); +	virtual int Exec(T2TowerDoc*); +private: +	int DoReception(T2TowerDoc*); +	void MaruReception(T2TowerDoc*, T2People*); +	void ReggaeReception(T2TowerDoc*, T2People*); +	void MakeClaimMessage(T2TowerDoc*, T2Tenant*, CString&); +	T2Tenant* FindTargetTenant(T2TowerDoc*); +	unsigned int FindNextTenant(T2TowerDoc*); +public: +	T2People* GetReggaeMan(); +	T2Tenant* GetVisitTenant(); +	virtual void Write(T2Archive&); +	virtual void Read(T2Archive&); + +	virtual unsigned long GetID() {} +	int IsReggae() {} +	T2Maru_Reggae(const T2Maru_Reggae&) {} +	T2Maru_Reggae& operator=(const T2Maru_Reggae&) {} +}; diff --git a/src/T2DLL/T2Matter.cpp b/src/T2DLL/T2Matter.cpp new file mode 100644 index 0000000..4af52e5 --- /dev/null +++ b/src/T2DLL/T2Matter.cpp @@ -0,0 +1,232 @@ +#include "T2Archive.h" +#include "T2Matter.h" +#include "T2ReturnStack.h" + +T2Matter::T2Matter() { +	Initialize(); +	mReturnStack = new T2ReturnStack; +} + +void T2Matter::Initialize() { +	mMatterID = 0; +	mMatterDef = NULL; +	m18 = 0; +	mWorkTenant = 0; +	mHomeTenant = 0; +	mCurrEquipID = 0; +	mDstTenant = 0; +	mCurPosition.y = 0; +	mCurPosition.x = 0; +	mCurrDestPos.y = 0; +	mCurrDestPos.x = 0; +	mStartTime = -1; +	mReturnStack = NULL; +	m44 = 0; +	m48 = 0; +	mDirection = -1; +	mWalkStyle = 0; +} + +/*virtual*/ T2Matter::~T2Matter() { +	delete mReturnStack; +} + +/*virtual*/ void T2Matter::SetUsed(BOOL used) { +	T2Object::SetUsed(used); +	if (used && mReturnStack) +		mReturnStack->Init(); +} + +void T2Matter::Initialize(T2MatterDef* matterDef) { +	mMatterDef = matterDef; +	m18 = 0; +	mWorkTenant = 0; +	mHomeTenant = 0; +	mCurrEquipID = 0; +	mDstTenant = 0; +	mCurPosition.y = 0; +	mCurPosition.x = 0; +	mCurrDestPos.y = 0; +	mCurrDestPos.x = 0; +	mStartTime = -1; +	m44 = 0; +	m48 = 0; +	mDirection = -1; +	mWalkStyle = 0; +} + +void T2Matter::FlipDirection() { +	if (mDirection == 0) +		mDirection = 1; +	else if (mDirection == 1) +		mDirection = 0; +} + +void T2Matter::SetDestination(unsigned int dstTenant, unsigned int startTime) { +	mDstTenant = dstTenant; +	mStartTime = startTime; +} + +void T2Matter::ClearDestination() { +	mDstTenant = 0; +	mStartTime = -1; +} + +BOOL T2Matter::IsStartTime(unsigned int time) const { +	BOOL result = false; +	if (IsSetStartTime() && mStartTime <= (int) time) +		result = true; +	return result; +} + +BOOL T2Matter::IsSetReturn() const { +	return mReturnStack->IsSet(); +} + +BOOL T2Matter::IsSetReturnTime() const { +	return mReturnStack->IsSetTime(); +} + +unsigned int T2Matter::GetReturnTime() const { +	return mReturnStack->GetTime(); +} + +unsigned int T2Matter::GetReturn() const { +	return mReturnStack->GetTenant(); +} + +BOOL T2Matter::SetReturn(unsigned int tenant, unsigned int time) { +	return mReturnStack->Push(tenant, time); +} + +void T2Matter::SetReturnTime(unsigned int time) { +	mReturnStack->SetTime(time); +} + +BOOL T2Matter::PopReturn(unsigned int& outTenant, unsigned int& outTime) { +	return mReturnStack->Pop(outTenant, outTime); +} + +BOOL T2Matter::SetReturnToDestination() { +	BOOL result = false; +	unsigned int tenant, time; +	if (mReturnStack->Pop(tenant, time)) { +		SetDestination(tenant, time); +		result = true; +	} +	return result; +} + +BOOL T2Matter::SetDestinationToReturn() { +	return SetReturn(mDstTenant, mStartTime); +} + +void T2Matter::DayChanged() { +	if (mStartTime >= 1440) +		mStartTime -= 1440; +	else if (mStartTime > 1438) +		mStartTime = 0; + +	if (mReturnStack) +		mReturnStack->DayChanged(); +} + +BOOL T2Matter::RemoveReturn(unsigned int tenant) { +	BOOL result = false; +	if (mReturnStack) +		result = mReturnStack->Remove(tenant); +	return result; +} + +/*virtual*/ void T2Matter::LoadSelf(T2Archive& archive, T2TowerDoc* towerDoc) { +	T2Object::LoadSelf(archive, towerDoc); + +	if (IsUsed()) { +		unsigned short us; +		short s; +		char c; +		DWORD code; + +		archive >> mMatterID; + +		archive >> us; +		mWorkTenant = us; +		archive >> us; +		mHomeTenant = us; +		archive >> us; +		mCurrEquipID = us; +		archive >> us; +		mDstTenant = us; + +		archive >> s; +		mCurPosition.x = s; +		archive >> s; +		mCurPosition.y = s; +		archive >> s; +		mCurrDestPos.x = s; +		archive >> s; +		mCurrDestPos.y = s; + +		archive >> s; +		mStartTime = s; + +		archive >> c; +		mDirection = c; +		archive >> c; +		mWalkStyle = c; + +		archive >> code; +		if (code == 'RSTK') { +			if (!mReturnStack) +				mReturnStack = new T2ReturnStack; +			mReturnStack->Read(archive, towerDoc); +		} +	} +} + +/*virtual*/ void T2Matter::SaveSelf(T2Archive& archive) { +	T2Object::SaveSelf(archive); + +	if (IsUsed()) { +		unsigned short us; +		short s; +		char c; +		DWORD code; + +		archive << mMatterID; + +		us = mWorkTenant; +		archive << us; +		us = mHomeTenant; +		archive << us; +		us = mCurrEquipID; +		archive << us; +		us = mDstTenant; +		archive << us; + +		s = mCurPosition.x; +		archive << s; +		s = mCurPosition.y; +		archive << s; +		s = mCurrDestPos.x; +		archive << s; +		s = mCurrDestPos.y; +		archive << s; + +		s = mStartTime; +		archive << s; + +		c = mDirection; +		archive << c; +		c = mWalkStyle; +		archive << c; + +		if (mReturnStack) +			code = 'RSTK'; +		else +			code = 'xRSK'; +		archive << code; +		if (code == 'RSTK') +			mReturnStack->Write(archive); +	} +} diff --git a/src/T2DLL/T2Matter.h b/src/T2DLL/T2Matter.h new file mode 100644 index 0000000..60caed3 --- /dev/null +++ b/src/T2DLL/T2Matter.h @@ -0,0 +1,81 @@ +#pragma once +#include "common.h" +#include "T2DrawableObject.h" + +class T2Matter : public T2DrawableObject { +public: +	T2Matter(); + +	virtual ~T2Matter(); +	virtual void SetUsed(BOOL); +	void Initialize(T2MatterDef*); +	void FlipDirection(); +	void SetDestination(unsigned int, unsigned int); +	void ClearDestination(); +	BOOL IsStartTime(unsigned int) const; +	BOOL IsSetReturn() const; +	BOOL IsSetReturnTime() const; +	unsigned int GetReturnTime() const; +	unsigned int GetReturn() const; +	BOOL SetReturn(unsigned int tenant, unsigned int time); +	void SetReturnTime(unsigned int); +	BOOL PopReturn(unsigned int& outTenant, unsigned int& outTime); +	BOOL SetReturnToDestination(); +	BOOL SetDestinationToReturn(); +	void DayChanged(); +	BOOL RemoveReturn(unsigned int); + +	unsigned int GetMatterID() { return mMatterID; } +	T2MatterDef* GetMatterDef() const { return mMatterDef; } +	BOOL IsFront() { return m44 == 0; } +	BOOL IsLast() { return m48 == 0; } +	unsigned int GetWorkTenant() const { return mWorkTenant; } +	unsigned int GetHomeTenant() const { return mHomeTenant; } +	unsigned int GetCurrEquipID() const { return mCurrEquipID; } +	void SetWorkTenant(unsigned int v) { mWorkTenant = v; } +	void SetHomeTenant(unsigned int v) { mHomeTenant = v; } +	void SetCurrEquipID(unsigned int v) { mCurrEquipID = v; } +	unsigned int GetDstTenant() { return mDstTenant; } +	POINT GetCurPosition() const { return mCurPosition; } +	void SetDirection(int v) { mDirection = v; } +	int GetDirection() const { return mDirection; } +	int GetWalkStyle() const { return mWalkStyle; } +	void MoveHTo(int v) { mCurPosition.x = v; } +	void MoveVTo(int v) { mCurPosition.y = v; } +	POINT GetCurrDestPos() const { return mCurrDestPos; } +	void SetCurrDestPos(POINT pt) { mCurrDestPos = pt; } +	BOOL InDestFloor() const { +		return mCurPosition.y == mCurrDestPos.y; +	} +	BOOL IsGoDown() const { +		return mCurrDestPos.y > mCurPosition.y; +	} +	BOOL IsSetStartTime() const { return mStartTime > -1; } +	BOOL IsSetDestination() const { return mDstTenant != 0; } +	unsigned int GetDestination() const { return mDstTenant; } +	void SetStartTime(unsigned int v) { mStartTime = v; } + +private: +	void Initialize(); + +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); + +	friend class T2MatterArray; +	unsigned int mMatterID; +	T2MatterDef *mMatterDef; +	int m18; +	unsigned int mWorkTenant; +	unsigned int mHomeTenant; +	unsigned int mCurrEquipID; +	unsigned int mDstTenant; +	POINT mCurPosition; +	POINT mCurrDestPos; +	int mStartTime; +	T2ReturnStack *mReturnStack; +	int m44; +	int m48; +	int mDirection; +	int mWalkStyle; +}; diff --git a/src/T2DLL/T2MatterArray.cpp b/src/T2DLL/T2MatterArray.cpp new file mode 100644 index 0000000..2dee1cc --- /dev/null +++ b/src/T2DLL/T2MatterArray.cpp @@ -0,0 +1,38 @@ +#include "T2MatterArray.h" + +T2MatterArray::T2MatterArray(unsigned int jobType, unsigned int validRange, unsigned int startID) +	: T2ObjectArray(startID) +{ +	mJobType = jobType; +	mValidRange = validRange; + +	for (unsigned int i = 0; i < 448; i++) +		mMatter[i].mMatterID = mStartID + i; +} + +void T2MatterArray::SetValidRange(unsigned int validRange) { +	if (validRange <= 448) +		mValidRange = validRange; +} + +T2Matter* T2MatterArray::FindUnusedMatter(unsigned int arg) { +	for (unsigned int i = 0; i < mValidRange; i++) { +		if (!mMatter[i].IsUsed()) +			return &mMatter[i]; +	} + +	if (arg > 0) { +		unsigned int start = mValidRange; +		unsigned int end = mValidRange + arg; +		if (end > 448) +			end = 448; +		mValidRange = end; + +		for (unsigned int i = start; i < mValidRange; i++) { +			if (!mMatter[i].IsUsed()) +				return &mMatter[i]; +		} +	} + +	return NULL; +} diff --git a/src/T2DLL/T2MatterArray.h b/src/T2DLL/T2MatterArray.h new file mode 100644 index 0000000..a7defaa --- /dev/null +++ b/src/T2DLL/T2MatterArray.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" +#include "T2Matter.h" +#include "T2ObjectArray.h" + +class DLL_EXPORT T2MatterArray : public T2ObjectArray { +public: +	T2MatterArray(unsigned int jobType, unsigned int validRange, unsigned int startID); +	virtual ~T2MatterArray() { } + +	void SetValidRange(unsigned int validRange); +	T2Matter* FindUnusedMatter(unsigned int); + +	unsigned int GetJobType() { return mJobType; } +	unsigned int GetValidRange() { return mValidRange; } +	unsigned int GetSpare() { return 448 - mValidRange; } +	T2Matter* GetIndexMatter(int i) { return &mMatter[i]; } + +protected: +	unsigned int mJobType; +	unsigned int mValidRange; +	T2Matter mMatter[448]; +}; diff --git a/src/T2DLL/T2MatterArrayList.cpp b/src/T2DLL/T2MatterArrayList.cpp new file mode 100644 index 0000000..d53785e --- /dev/null +++ b/src/T2DLL/T2MatterArrayList.cpp @@ -0,0 +1,25 @@ +#include "T2MatterArrayList.h" + +T2MatterArrayList::T2MatterArrayList(const T2MatterArrayList&) { +} + +T2MatterArrayList& T2MatterArrayList::operator=(const T2MatterArrayList&) { +} + +T2MatterArrayList::T2MatterArrayList() { +} + +/*virtual*/ T2MatterArrayList::~T2MatterArrayList() { +} + +void T2MatterArrayList::Add(T2MatterArray*) { +} + +unsigned int T2MatterArrayList::GetItemCount() { +} + +T2MatterArray* T2MatterArrayList::GetItemAt(long) { +} + +T2Matter* T2MatterArrayList::FindUnusedMatter(unsigned int, unsigned int) { +} diff --git a/src/T2DLL/T2MatterArrayList.h b/src/T2DLL/T2MatterArrayList.h new file mode 100644 index 0000000..bf6fed3 --- /dev/null +++ b/src/T2DLL/T2MatterArrayList.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2MatterArrayList { +public: +	T2MatterArrayList(const T2MatterArrayList&); +	T2MatterArrayList& operator=(const T2MatterArrayList&); +	T2MatterArrayList(); +	virtual ~T2MatterArrayList(); +	void Add(T2MatterArray*); +	unsigned int GetItemCount(); +	T2MatterArray* GetItemAt(long); +	T2Matter* FindUnusedMatter(unsigned int, unsigned int); +}; diff --git a/src/T2DLL/T2MatterDef.cpp b/src/T2DLL/T2MatterDef.cpp new file mode 100644 index 0000000..298c851 --- /dev/null +++ b/src/T2DLL/T2MatterDef.cpp @@ -0,0 +1,26 @@ +#include "CResFile.h" +#include "T2MatterDef.h" +#include "T2TemplatePluginList.h" + +T2MatterDef::T2MatterDef(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile) +	: T2TemplatePlugin(type, specifier, resFile, NULL) +{ +	*resFile >> mSortKey; +	*resFile >> mAttribute; +	*resFile >> mSilhouetteID; +	mSilhouetteDef = NULL; +} + +/*virtual*/ T2MatterDef::~T2MatterDef() { +} + +/*virtual*/ void T2MatterDef::GetName(CString& outStr) { +	outStr.Format("%d", mSortKey); +} + +/*virtual*/ void T2MatterDef::AssignSilhouette(T2TemplatePluginList* list) { +	T2SilhouetteDef *silhouetteDef = list->FindSilhouette(mSilhouetteID); +#line 31 +	_ASSERT(silhouetteDef); +	mSilhouetteDef = silhouetteDef; +} diff --git a/src/T2DLL/T2MatterDef.h b/src/T2DLL/T2MatterDef.h new file mode 100644 index 0000000..f23d58a --- /dev/null +++ b/src/T2DLL/T2MatterDef.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" +#include "T2TemplatePlugin.h" + +class T2MatterDef : public T2TemplatePlugin { +public: +	T2MatterDef(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile); +	virtual ~T2MatterDef(); +	virtual void GetName(CString& outStr); +	virtual void AssignSilhouette(T2TemplatePluginList* list); + +	virtual int GetSortKey() { return mSortKey; } +	int GetAttribute() const { return mAttribute; } +	virtual T2SilhouetteDef* GetSilhouetteDef() const { return mSilhouetteDef; } + +protected: +	int mSortKey; +	int mAttribute; +	int mSilhouetteID; +	T2SilhouetteDef *mSilhouetteDef; +}; diff --git a/src/T2DLL/T2Message.cpp b/src/T2DLL/T2Message.cpp new file mode 100644 index 0000000..e089c1b --- /dev/null +++ b/src/T2DLL/T2Message.cpp @@ -0,0 +1,49 @@ +#include "T2Message.h" + +T2Message::T2Message() { +} + +void T2Message::ShowMessage(const CString&) { +} + +/*virtual*/ T2Message::~T2Message() { +} + +/*static*/ const AFX_MSGMAP* __stdcall T2Message::_GetBaseMessageMap() { +} + +/*virtual*/ const AFX_MSGMAP* T2Message::GetMessageMap() const { +} + +/*virtual*/ void T2Message::PostNcDestroy() { +} + +int T2Message::OnCreate(CREATESTRUCTA*) { +} + +void T2Message::OnTimer(unsigned int) { +} + +long T2Message::OnHookMessage(unsigned int, long) { +} + +void T2Message::OnLButtonDown(unsigned int, CPoint) { +} + +void T2Message::OnRButtonDown(unsigned int, CPoint) { +} + +void T2Message::OnKeyDown(unsigned int, unsigned int, unsigned int) { +} + +void T2Message::OnDestroy() { +} + +int T2Message::OnEraseBkgnd(CDC*) { +} + +/*static*/ const AFX_MSGMAP T2Message::messageMap { +} + +/*static*/ const AFX_MSGMAP_ENTRY* const T2Message::_messageEntries { +} diff --git a/src/T2DLL/T2Message.h b/src/T2DLL/T2Message.h new file mode 100644 index 0000000..816cc61 --- /dev/null +++ b/src/T2DLL/T2Message.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2Message { +public: +	T2Message(); +	void ShowMessage(const CString&); +protected: +	virtual ~T2Message(); +	static const AFX_MSGMAP* __stdcall _GetBaseMessageMap(); +	virtual const AFX_MSGMAP* GetMessageMap() const; +	virtual void PostNcDestroy(); +	int OnCreate(CREATESTRUCTA*); +	void OnTimer(unsigned int); +	long OnHookMessage(unsigned int, long); +	void OnLButtonDown(unsigned int, CPoint); +	void OnRButtonDown(unsigned int, CPoint); +	void OnKeyDown(unsigned int, unsigned int, unsigned int); +	void OnDestroy(); +	int OnEraseBkgnd(CDC*); +	static const AFX_MSGMAP messageMap; +private: +	static const AFX_MSGMAP_ENTRY* const _messageEntries; +}; diff --git a/src/T2DLL/T2Mover.cpp b/src/T2DLL/T2Mover.cpp new file mode 100644 index 0000000..9472651 --- /dev/null +++ b/src/T2DLL/T2Mover.cpp @@ -0,0 +1,139 @@ +#include "T2Mover.h" + +T2Mover::T2Mover() { +} + +/*virtual*/ T2Mover::~T2Mover() { +} + +/*virtual*/ void T2Mover::SetUsed(int) { +} + +int T2Mover::InitMover(T2MoverDef*, const RECT&, unsigned int) { +} + +int T2Mover::InitStair(T2MoverDef*, const RECT&, unsigned int) { +} + +int T2Mover::InitElevator(T2MoverDef*, const RECT&, unsigned int) { +} + +void T2Mover::GetTypicalName(CString&) const { +} + +/*virtual*/ PROCCODE T2Mover::DoDestruct(T2TowerDoc*, POINT, RECT&) { +} + +/*virtual*/ int T2Mover::Destruct(T2TowerDoc*, CRect&) { +} + +/*virtual*/ void T2Mover::Draw(T2TowerDoc*, const RECT&) { +} + +int T2Mover::GetNumStop() const { +} + +void T2Mover::AddStopBoth(T2TowerDoc*, int) { +} + +int T2Mover::AddStop(T2FloorInfo*, int, ERequestUpDown) { +} + +void T2Mover::RemoveStopBoth(T2TowerDoc*, int) { +} + +void T2Mover::RemoveStop(T2TowerDoc*, int, ERequestUpDown) { +} + +void T2Mover::RemoveCrossEquipID(T2FloorInfo*, int) { +} + +void T2Mover::RemoveUnstoppable(T2TowerDoc*) { +} + +void T2Mover::AddCrossEquipID(T2FloorInfo*, int) { +} + +void T2Mover::AddCEFloorID(T2FloorInfo*, int) { +} + +void T2Mover::ReplaceID(T2FloorInfo*, unsigned int) { +} + +POINT T2Mover::PositionToStopPt(int, ERequestUpDown) { +} + +int T2Mover::UnitToPosition(int) const { +} + +int T2Mover::PositionToUnit(int) const { +} + +int T2Mover::IsStopPosition(int) const { +} + +int T2Mover::IsStopPosition(int, ERequestUpDown) { +} + +int T2Mover::AddModule(T2TowerDoc*, int) { +} + +void T2Mover::AddStairModule(T2TowerDoc*, const RECT&, int) { +} + +unsigned int T2Mover::GetRequestID(int, int) const { +} + +int T2Mover::GetModuleCount() const { +} + +int T2Mover::FindStairModule(T2TowerDoc*, POINT, T2MoverModule*&, T2MoverModule*&) { +} + +int T2Mover::CalcModuleRect(const T2MoverModule*, RECT&, int&) const { +} + +T2MoverModule* T2Mover::FindPeople(const T2People*) const { +} + +void T2Mover::CalcMachineArea(EEquipPos, RECT&) const { +} + +void T2Mover::AdjustLength() { +} + +T2Request* T2Mover::GetRequest(T2FloorInfo*, int, int) const { +} + +int T2Mover::CalcScore(int) const { +} + +int T2Mover::ExpandArea(T2TowerDoc*, EEquipPos, int) { +} + +int T2Mover::IsHomePosition(int) const { +} + +void T2Mover::CalcBodyArea(RECT&) const { +} + +int T2Mover::CalcModulePos(T2MoverModule*, ERequestUpDown) { +} + +void T2Mover::ShowShaft() { +} + +void T2Mover::HideShaft() { +} + +/*virtual*/ unsigned int T2Mover::Idle(T2TowerDoc*) { +} + +/*virtual*/ void T2Mover::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2Mover::SaveSelf(T2Archive&) { +} + +/*virtual*/ T2InfoDialog* T2Mover::ShowInfoDialog(T2TowerDoc*, CPoint) { +} diff --git a/src/T2DLL/T2Mover.h b/src/T2DLL/T2Mover.h new file mode 100644 index 0000000..18326bd --- /dev/null +++ b/src/T2DLL/T2Mover.h @@ -0,0 +1,71 @@ +#pragma once +#include "common.h" + +class T2Mover { +public: +	T2Mover(); +	virtual ~T2Mover(); +	virtual void SetUsed(int); +	int InitMover(T2MoverDef*, const RECT&, unsigned int); +	int InitStair(T2MoverDef*, const RECT&, unsigned int); +	int InitElevator(T2MoverDef*, const RECT&, unsigned int); +	void GetTypicalName(CString&) const; +	virtual PROCCODE DoDestruct(T2TowerDoc*, POINT, RECT&); +	virtual int Destruct(T2TowerDoc*, CRect&); +	virtual void Draw(T2TowerDoc*, const RECT&); +	int GetNumStop() const; +	void AddStopBoth(T2TowerDoc*, int); +	int AddStop(T2FloorInfo*, int, ERequestUpDown); +	void RemoveStopBoth(T2TowerDoc*, int); +	void RemoveStop(T2TowerDoc*, int, ERequestUpDown); +	void RemoveCrossEquipID(T2FloorInfo*, int); +	void RemoveUnstoppable(T2TowerDoc*); +	void AddCrossEquipID(T2FloorInfo*, int); +	void AddCEFloorID(T2FloorInfo*, int); +	void ReplaceID(T2FloorInfo*, unsigned int); +	POINT PositionToStopPt(int, ERequestUpDown); +	int UnitToPosition(int) const; +	int PositionToUnit(int) const; +	int IsStopPosition(int) const; +	int IsStopPosition(int, ERequestUpDown); +	int AddModule(T2TowerDoc*, int); +	void AddStairModule(T2TowerDoc*, const RECT&, int); +	unsigned int GetRequestID(int, int) const; +	int GetModuleCount() const; +	int FindStairModule(T2TowerDoc*, POINT, T2MoverModule*&, T2MoverModule*&); +	int CalcModuleRect(const T2MoverModule*, RECT&, int&) const; +	T2MoverModule* FindPeople(const T2People*) const; +	void CalcMachineArea(EEquipPos, RECT&) const; +	void AdjustLength(); +	T2Request* GetRequest(T2FloorInfo*, int, int) const; +	int CalcScore(int) const; +	int ExpandArea(T2TowerDoc*, EEquipPos, int); +	int IsHomePosition(int) const; +	void CalcBodyArea(RECT&) const; +	int CalcModulePos(T2MoverModule*, ERequestUpDown); +	void ShowShaft(); +	void HideShaft(); +	virtual unsigned int Idle(T2TowerDoc*); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); +public: +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*, CPoint); + +	void SetShowShaft(int) {} +	void StartBuild() {} +	virtual int IsBuildFinish() {} +	virtual int Enter(CLink*) {} +	virtual int Leave(CLink*) {} +	T2Mover(const T2Mover&) {} +	T2Mover& operator=(const T2Mover&) {} +	int IsStair() const {} +	int IsElevator() const {} +	int IsCheckRequest() const {} +	void SetCheckRequest(int) {} +	int GetLength() const {} +	int GetWaitCount() const {} +	T2RequestIDArray* GetReqIDArray() const {} +	T2MoverModuleList* GetModuleList() const {} +	int IsShaftVisible() const {} +}; diff --git a/src/T2DLL/T2MoverArray.cpp b/src/T2DLL/T2MoverArray.cpp new file mode 100644 index 0000000..9ecffac --- /dev/null +++ b/src/T2DLL/T2MoverArray.cpp @@ -0,0 +1,25 @@ +#include "T2MoverArray.h" + +T2MoverArray::T2MoverArray(unsigned int) { +} + +/*virtual*/ T2MoverArray::~T2MoverArray() { +} + +T2Mover* T2MoverArray::FindUnusedMover() { +} + +void T2MoverArray::DrawMoverAll(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ void T2MoverArray::DispatchIdle(T2TowerDoc*, int) { +} + +int T2MoverArray::CalcMentenanceCost(T2TowerDoc*) const { +} + +void T2MoverArray::Read(T2Archive&, T2TowerDoc*) { +} + +void T2MoverArray::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2MoverArray.h b/src/T2DLL/T2MoverArray.h new file mode 100644 index 0000000..794f8ee --- /dev/null +++ b/src/T2DLL/T2MoverArray.h @@ -0,0 +1,19 @@ +#pragma once +#include "common.h" + +class T2MoverArray { +public: +	T2MoverArray(unsigned int); +	virtual ~T2MoverArray(); +	T2Mover* FindUnusedMover(); +	void DrawMoverAll(T2TowerDoc*, const RECT&); +	virtual void DispatchIdle(T2TowerDoc*, int); +	int CalcMentenanceCost(T2TowerDoc*) const; +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	T2Mover* GetIndexMover(int) {} +	T2MoverArray(const T2MoverArray&) {} +	T2MoverArray& operator=(const T2MoverArray&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2MoverArrayList.cpp b/src/T2DLL/T2MoverArrayList.cpp new file mode 100644 index 0000000..09894aa --- /dev/null +++ b/src/T2DLL/T2MoverArrayList.cpp @@ -0,0 +1,40 @@ +#include "T2MoverArrayList.h" + +T2MoverArrayList::T2MoverArrayList() { +} + +/*virtual*/ T2MoverArrayList::~T2MoverArrayList() { +} + +void T2MoverArrayList::Add(T2MoverArray*) { +} + +unsigned int T2MoverArrayList::GetItemCount() { +} + +T2MoverArray* T2MoverArrayList::GetItemAt(int) { +} + +T2Mover* T2MoverArrayList::GetMoverByID(unsigned int) { +} + +T2Mover* T2MoverArrayList::FindUnusedMover() { +} + +void T2MoverArrayList::DrawMoverAll(T2TowerDoc*, const RECT&) { +} + +void T2MoverArrayList::DispatchIdle(T2TowerDoc*) { +} + +void T2MoverArrayList::Read(T2Archive&, T2TowerDoc*) { +} + +void T2MoverArrayList::Write(T2Archive&) { +} + +int T2MoverArrayList::CalcMentenanceCost(T2TowerDoc*) const { +} + +LArray* T2MoverArrayList::MakeMoverList(int) { +} diff --git a/src/T2DLL/T2MoverArrayList.h b/src/T2DLL/T2MoverArrayList.h new file mode 100644 index 0000000..8f944bb --- /dev/null +++ b/src/T2DLL/T2MoverArrayList.h @@ -0,0 +1,22 @@ +#pragma once +#include "common.h" + +class T2MoverArrayList { +public: +	T2MoverArrayList(); +	virtual ~T2MoverArrayList(); +	void Add(T2MoverArray*); +	unsigned int GetItemCount(); +	T2MoverArray* GetItemAt(int); +	T2Mover* GetMoverByID(unsigned int); +	T2Mover* FindUnusedMover(); +	void DrawMoverAll(T2TowerDoc*, const RECT&); +	void DispatchIdle(T2TowerDoc*); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); +	int CalcMentenanceCost(T2TowerDoc*) const; +	LArray* MakeMoverList(int); + +	T2MoverArrayList(const T2MoverArrayList&) {} +	T2MoverArrayList& operator=(const T2MoverArrayList&) {} +}; diff --git a/src/T2DLL/T2MoverCEArray.cpp b/src/T2DLL/T2MoverCEArray.cpp new file mode 100644 index 0000000..fe00b8e --- /dev/null +++ b/src/T2DLL/T2MoverCEArray.cpp @@ -0,0 +1,7 @@ +#include "T2MoverCEArray.h" + +T2MoverCEArray::T2MoverCEArray() { +} + +/*virtual*/ T2MoverCEArray::~T2MoverCEArray() { +} diff --git a/src/T2DLL/T2MoverCEArray.h b/src/T2DLL/T2MoverCEArray.h new file mode 100644 index 0000000..c0be283 --- /dev/null +++ b/src/T2DLL/T2MoverCEArray.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" +#include "T2RouteCEArray.h" + +class T2MoverCEArray : public T2RouteCEArray { +public: +	T2MoverCEArray(); +	virtual ~T2MoverCEArray(); + +	virtual DWORD GetCEClassID() { return 'MCEA'; } +}; diff --git a/src/T2DLL/T2MoverDef.cpp b/src/T2DLL/T2MoverDef.cpp new file mode 100644 index 0000000..7352822 --- /dev/null +++ b/src/T2DLL/T2MoverDef.cpp @@ -0,0 +1,58 @@ +#include "T2MoverDef.h" + +T2MoverDef::T2MoverDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldDef*, T2MoverPlugin*) { +} + +/*virtual*/ T2MoverDef::~T2MoverDef() { +} + +/*virtual*/ void T2MoverDef::GetName(CString&) { +} + +int T2MoverDef::InitObject(T2Mover*, const POINT&) { +} + +/*virtual*/ AREACHECKCODE T2MoverDef::AreaCheck(T2TowerDoc*, RECT&, unsigned int, int) { +} + +/*virtual*/ int T2MoverDef::ClickProc(T2TowerDoc*, RECT*, unsigned int&) { +} + +/*virtual*/ int T2MoverDef::MakeRequestProc(T2TowerDoc*, T2Equip*) { +} + +/*virtual*/ PROCCODE T2MoverDef::AddModuleProc(T2TowerDoc*, T2Equip*, RECT*) { +} + +/*virtual*/ int T2MoverDef::GetMinMaxRangeProc(T2TowerDoc*, T2Equip*, int) { +} + +/*virtual*/ int T2MoverDef::HandleUpProc(T2TowerDoc*, T2Equip*, POINT) { +} + +/*virtual*/ int T2MoverDef::HandleDownProc(T2TowerDoc*, T2Equip*, POINT) { +} + +/*virtual*/ int T2MoverDef::ClickShaftProc(T2TowerDoc*, T2Equip*, POINT) { +} + +/*virtual*/ int T2MoverDef::CalcModulePatIndex(int) { +} + +/*virtual*/ CURSORTYPE T2MoverDef::QueryCursor(T2TowerDoc*, POINT, CString&, RECT&, POINT&, int, unsigned int, int) { +} + +/*virtual*/ int T2MoverDef::IsaKindOfStopProc(T2TowerDoc*, T2Equip*, int, int) const { +} + +/*virtual*/ int T2MoverDef::CalcMentenanceCostProc(const T2HaveOutViewObject*) const { +} + +/*virtual*/ T2InfoDialog* T2MoverDef::ShowInfoDialog(T2TowerDoc*, T2Mover*, CPoint) { +} + +/*virtual*/ int T2MoverDef::GetInfoDialogID(T2TowerDoc*, const T2Mover*, PARTCODE, int) const { +} + +/*virtual*/ T2InfoDialog* T2MoverDef::ConstructInfoDialog(T2Mover*, PARTCODE, int) { +} diff --git a/src/T2DLL/T2MoverDef.h b/src/T2DLL/T2MoverDef.h new file mode 100644 index 0000000..32960c6 --- /dev/null +++ b/src/T2DLL/T2MoverDef.h @@ -0,0 +1,43 @@ +#pragma once +#include "common.h" + +class T2MoverDef { +public: +	T2MoverDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldDef*, T2MoverPlugin*); +	virtual ~T2MoverDef(); +	virtual void GetName(CString&); +	int InitObject(T2Mover*, const POINT&); +	virtual AREACHECKCODE AreaCheck(T2TowerDoc*, RECT&, unsigned int, int); +	virtual int ClickProc(T2TowerDoc*, RECT*, unsigned int&); +	virtual int MakeRequestProc(T2TowerDoc*, T2Equip*); +	virtual PROCCODE AddModuleProc(T2TowerDoc*, T2Equip*, RECT*); +	virtual int GetMinMaxRangeProc(T2TowerDoc*, T2Equip*, int); +	virtual int HandleUpProc(T2TowerDoc*, T2Equip*, POINT); +	virtual int HandleDownProc(T2TowerDoc*, T2Equip*, POINT); +	virtual int ClickShaftProc(T2TowerDoc*, T2Equip*, POINT); +	virtual int CalcModulePatIndex(int); +	virtual CURSORTYPE QueryCursor(T2TowerDoc*, POINT, CString&, RECT&, POINT&, int, unsigned int, int); +	virtual int IsaKindOfStopProc(T2TowerDoc*, T2Equip*, int, int) const; +	virtual int CalcMentenanceCostProc(const T2HaveOutViewObject*) const; +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*, T2Mover*, CPoint); +	virtual int GetInfoDialogID(T2TowerDoc*, const T2Mover*, PARTCODE, int) const; +	virtual T2InfoDialog* ConstructInfoDialog(T2Mover*, PARTCODE, int); + +	int GetMinLength() const {} +	int GetMaxLength() const {} +	virtual int IsMover() {} +	virtual int InitObject(T2Object*) {} +	virtual int CalcModulePosProc(T2Equip*, T2MoverModule*, ERequestUpDown) {} +	virtual int CalcModuleRectProc(const T2Mover*, const T2MoverModule*, RECT&, int&) const {} +	int GetSpeed(int) const {} +	T2MoverDef& operator=(T2MoverDef&) {} +	int IsStair() {} +	void GetAddSize(RECT&) const {} +	int GetDefaultWait() const {} +	int GetMaxModule() const {} +	void GetModuleInset(RECT&) const {} +	int GetMaxStop() const {} +	T2BitImage* GetOffBitMap() const {} +	int GetScore() const {} +	static unsigned int GetRequiredRequestSpace() {} +}; diff --git a/src/T2DLL/T2MoverModule.cpp b/src/T2DLL/T2MoverModule.cpp new file mode 100644 index 0000000..358c1f2 --- /dev/null +++ b/src/T2DLL/T2MoverModule.cpp @@ -0,0 +1,49 @@ +#include "T2MoverModule.h" + +T2MoverModule::T2MoverModule() { +} + +/*virtual*/ T2MoverModule::~T2MoverModule() { +} + +/*virtual*/ void T2MoverModule::SetUsed(int) { +} + +/*virtual*/ void T2MoverModule::RemoveContents(T2TowerDoc*) { +} + +/*virtual*/ void T2MoverModule::StopAdded(T2TowerDoc*, T2Mover*, int) { +} + +/*virtual*/ void T2MoverModule::StopRemoved(T2TowerDoc*, T2Mover*, int) { +} + +/*virtual*/ void T2MoverModule::Enter(T2Mover*, T2People*) { +} + +/*virtual*/ int T2MoverModule::Enter(CLink*) { +} + +/*virtual*/ int T2MoverModule::Leave(CLink*) { +} + +/*virtual*/ void T2MoverModule::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2MoverModule::SaveSelf(T2Archive&) { +} + +void T2MoverModule::SetDirection(int) { +} + +void T2MoverModule::AddPosition(int) { +} + +/*static*/ unsigned int T2MoverModule::GetNewModuleID(T2TowerDoc*) { +} + +void T2MoverModule::SetModuleID(T2TowerDoc*) { +} + +/*static*/ unsigned int T2MoverModule::sModuleID { +} diff --git a/src/T2DLL/T2MoverModule.h b/src/T2DLL/T2MoverModule.h new file mode 100644 index 0000000..f9ce786 --- /dev/null +++ b/src/T2DLL/T2MoverModule.h @@ -0,0 +1,40 @@ +#pragma once +#include "common.h" + +class T2MoverModule { +public: +	T2MoverModule(); +	virtual ~T2MoverModule(); +	virtual void SetUsed(int); +	virtual void RemoveContents(T2TowerDoc*); +	virtual void StopAdded(T2TowerDoc*, T2Mover*, int); +	virtual void StopRemoved(T2TowerDoc*, T2Mover*, int); +	virtual void Enter(T2Mover*, T2People*); +	virtual int Enter(CLink*); +	virtual int Leave(CLink*); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); +public: +	void SetDirection(int); +	void AddPosition(int); +private: +	static unsigned int GetNewModuleID(T2TowerDoc*); +public: +	void SetModuleID(T2TowerDoc*); +private: +	static unsigned int sModuleID; + +public: +	unsigned int GetModuleID() const {} +	int GetPosition() const {} +	int GetDirection() const {} +	int GetWaitCounter() const {} +	void SetWaitCounter(int) {} +	void SubWaitCounter(int) {} +	int GetPatIndex() const {} +	void SetPatIndex(int) {} +	int GetNumPeople() const {} +	T2MoverModule(const T2MoverModule&) {} +	T2MoverModule& operator=(const T2MoverModule&) {} +}; diff --git a/src/T2DLL/T2MoverModuleList.cpp b/src/T2DLL/T2MoverModuleList.cpp new file mode 100644 index 0000000..a0262cd --- /dev/null +++ b/src/T2DLL/T2MoverModuleList.cpp @@ -0,0 +1,49 @@ +#include "T2MoverModuleList.h" + +T2MoverModuleList::T2MoverModuleList() { +} + +/*virtual*/ T2MoverModuleList::~T2MoverModuleList() { +} + +/*virtual*/ int T2MoverModuleList::Init(T2MoverDef*, const RECT&) { +} + +int T2MoverModuleList::InsertModuleAt(int, T2MoverModule*) { +} + +void T2MoverModuleList::AllClear() { +} + +/*virtual*/ void T2MoverModuleList::Destruct(T2TowerDoc*) { +} + +/*virtual*/ void T2MoverModuleList::RemoveModule(T2TowerDoc*, T2MoverModule*) { +} + +/*virtual*/ void T2MoverModuleList::Read(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2MoverModuleList::Write(T2Archive&) { +} + +/*virtual*/ T2MoverModule* T2MoverModuleList::ConstructModule() { +} + +/*virtual*/ void T2MoverModuleList::StopAdded(T2TowerDoc*, T2Mover*, int) { +} + +/*virtual*/ void T2MoverModuleList::StopRemoved(T2TowerDoc*, T2Mover*, int) { +} + +unsigned int T2MoverModuleList::GetItemCount() { +} + +/*static*/ T2MoverModuleList* T2MoverModuleList::ReadMMList(T2Archive&, T2TowerDoc*) { +} + +/*static*/ void T2MoverModuleList::WriteMMList(T2MoverModuleList*, T2Archive&) { +} + +/*virtual*/ int T2MoverModuleList::GetModuleCount() const { +} diff --git a/src/T2DLL/T2MoverModuleList.h b/src/T2DLL/T2MoverModuleList.h new file mode 100644 index 0000000..de55200 --- /dev/null +++ b/src/T2DLL/T2MoverModuleList.h @@ -0,0 +1,29 @@ +#pragma once +#include "common.h" + +class T2MoverModuleList { +public: +	T2MoverModuleList(); +	virtual ~T2MoverModuleList(); +	virtual int Init(T2MoverDef*, const RECT&); +	int InsertModuleAt(int, T2MoverModule*); +	void AllClear(); +	virtual void Destruct(T2TowerDoc*); +	virtual void RemoveModule(T2TowerDoc*, T2MoverModule*); +	virtual void Read(T2Archive&, T2TowerDoc*); +	virtual void Write(T2Archive&); +	virtual T2MoverModule* ConstructModule(); +	virtual void StopAdded(T2TowerDoc*, T2Mover*, int); +	virtual void StopRemoved(T2TowerDoc*, T2Mover*, int); +	unsigned int GetItemCount(); +	static T2MoverModuleList* ReadMMList(T2Archive&, T2TowerDoc*); +	static void WriteMMList(T2MoverModuleList*, T2Archive&); +	virtual int GetModuleCount() const; + +	void GetBaseRect(RECT&) const {} +protected: +	virtual unsigned long GetMMClassID() {} +public: +	T2MoverModuleList(const T2MoverModuleList&) {} +	T2MoverModuleList& operator=(const T2MoverModuleList&) {} +}; diff --git a/src/T2DLL/T2MoverNumberTable.cpp b/src/T2DLL/T2MoverNumberTable.cpp new file mode 100644 index 0000000..2034d98 --- /dev/null +++ b/src/T2DLL/T2MoverNumberTable.cpp @@ -0,0 +1,58 @@ +#include "T2MoverNumberTable.h" + +/*virtual*/ void T2MoverModuleTable::OnT2DlgItemLButtonUp(unsigned int, CPoint) { +} + +/*virtual*/ void T2MoverModuleTable::OnT2DlgItemMouseMove(unsigned int, CPoint) { +} + +/*virtual*/ int T2MoverModuleTable::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +T2MoverModuleTable::T2MoverModuleTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2MoverModuleTable::~T2MoverModuleTable() { +} + +/*virtual*/ int T2MoverModuleTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ void T2MoverModuleTable::SpendTime() { +} + +void T2MoverModuleTable::SetMover(T2Mover*) { +} + +T2ElevatorModule* T2MoverModuleTable::GetModule(int) { +} + +int T2MoverModuleTable::GetCellContent(const TableCellT&) { +} + +int T2MoverModuleTable::GetVScrValue() { +} + +/*virtual*/ void T2MoverModuleTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ void T2MoverModuleTable::ListenToMessage(unsigned int, void*) { +} + +void T2MoverModuleTable::RefreshMoverCell(int, unsigned int) { +} + +void T2MoverModuleTable::DrawMoverCellByIndex(unsigned int) { +} + +/*virtual*/ void T2MoverModuleTable::ClickCell(const TableCellT&, const POINT&) { +} + +/*virtual*/ int T2MoverModuleTable::OnCommand(unsigned int, long) { +} + +/*virtual*/ int T2MoverModuleTable::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ void T2MoverModuleTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} diff --git a/src/T2DLL/T2MoverNumberTable.h b/src/T2DLL/T2MoverNumberTable.h new file mode 100644 index 0000000..a28ec31 --- /dev/null +++ b/src/T2DLL/T2MoverNumberTable.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" + +class T2MoverModuleTable { +protected: +	virtual void OnT2DlgItemLButtonUp(unsigned int, CPoint); +	virtual void OnT2DlgItemMouseMove(unsigned int, CPoint); +public: +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +	T2MoverModuleTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2MoverModuleTable(); +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	virtual void SpendTime(); +	void SetMover(T2Mover*); +protected: +	T2ElevatorModule* GetModule(int); +	int GetCellContent(const TableCellT&); +	int GetVScrValue(); +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +public: +	virtual void ListenToMessage(unsigned int, void*); +	void RefreshMoverCell(int, unsigned int); +	void DrawMoverCellByIndex(unsigned int); +protected: +	virtual void ClickCell(const TableCellT&, const POINT&); +	virtual int OnCommand(unsigned int, long); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +}; diff --git a/src/T2DLL/T2MoverPlugin.cpp b/src/T2DLL/T2MoverPlugin.cpp new file mode 100644 index 0000000..a2a5a3a --- /dev/null +++ b/src/T2DLL/T2MoverPlugin.cpp @@ -0,0 +1,13 @@ +#include "T2MoverPlugin.h" + +T2MoverPlugin::T2MoverPlugin(unsigned long, T2PluginSpecifier&) { +} + +/*virtual*/ T2MoverPlugin::~T2MoverPlugin() { +} + +int T2MoverPlugin::LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*) { +} + +void T2MoverPlugin::LoadT2MoverDef(T2WorldDef*) { +} diff --git a/src/T2DLL/T2MoverPlugin.h b/src/T2DLL/T2MoverPlugin.h new file mode 100644 index 0000000..4d8c8ec --- /dev/null +++ b/src/T2DLL/T2MoverPlugin.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2MoverPlugin { +public: +	T2MoverPlugin(unsigned long, T2PluginSpecifier&); +	virtual ~T2MoverPlugin(); +	int LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*); +private: +	void LoadT2MoverDef(T2WorldDef*); + +public: +	T2MoverPlugin& operator=(T2MoverPlugin&) {} +}; diff --git a/src/T2DLL/T2MoverRoutingTable.cpp b/src/T2DLL/T2MoverRoutingTable.cpp new file mode 100644 index 0000000..7ee928c --- /dev/null +++ b/src/T2DLL/T2MoverRoutingTable.cpp @@ -0,0 +1,49 @@ +#include "T2MoverRoutingTable.h" + +T2MoverRoutingTable::T2MoverRoutingTable(T2FloorInfo*, T2FloorPtrList*, T2Mover*) { +} + +/*virtual*/ T2MoverRoutingTable::~T2MoverRoutingTable() { +} + +void T2MoverRoutingTable::AddItems(int) { +} + +void T2MoverRoutingTable::RemoveItem(int) { +} + +void T2MoverRoutingTable::ClearData() { +} + +int T2MoverRoutingTable::GetItem(int, T2RoutingTableElem&) { +} + +int T2MoverRoutingTable::IsStopFloor(int) { +} + +void T2MoverRoutingTable::SetStopFloor() { +} + +int T2MoverRoutingTable::Update(T2MoverRoutingTable*) { +} + +int T2MoverRoutingTable::IsUpdate(const T2MoverRoutingTable*, unsigned int, unsigned int, T2RoutingTableElem&) { +} + +int T2MoverRoutingTable::IsSetTable(unsigned int, unsigned int, unsigned int, int, int) { +} + +int T2MoverRoutingTable::CalcHScore(int) { +} + +int T2MoverRoutingTable::IsConnectRoute(int) { +} + +int T2MoverRoutingTable::GetNextRoute(POINT, unsigned int, POINT&, unsigned int, unsigned int&) { +} + +unsigned int T2MoverRoutingTable::CalcScore(POINT, POINT&, T2RoutingTableElem*) { +} + +T2Tenant* T2MoverRoutingTable::SelectNearFloor(POINT, int&, unsigned int&) { +} diff --git a/src/T2DLL/T2MoverRoutingTable.h b/src/T2DLL/T2MoverRoutingTable.h new file mode 100644 index 0000000..3621ae9 --- /dev/null +++ b/src/T2DLL/T2MoverRoutingTable.h @@ -0,0 +1,33 @@ +#pragma once +#include "common.h" + +class T2MoverRoutingTable { +public: +	T2MoverRoutingTable(T2FloorInfo*, T2FloorPtrList*, T2Mover*); +	virtual ~T2MoverRoutingTable(); +	void AddItems(int); +	void RemoveItem(int); +	void ClearData(); +	int GetItem(int, T2RoutingTableElem&); +protected: +	int IsStopFloor(int); +public: +	void SetStopFloor(); +	int Update(T2MoverRoutingTable*); +protected: +	int IsUpdate(const T2MoverRoutingTable*, unsigned int, unsigned int, T2RoutingTableElem&); +	int IsSetTable(unsigned int, unsigned int, unsigned int, int, int); +	int CalcHScore(int); +public: +	int IsConnectRoute(int); +	int GetNextRoute(POINT, unsigned int, POINT&, unsigned int, unsigned int&); +protected: +	unsigned int CalcScore(POINT, POINT&, T2RoutingTableElem*); +public: +	T2Tenant* SelectNearFloor(POINT, int&, unsigned int&); + +	T2MoverRoutingTable(const T2MoverRoutingTable&) {} +	T2MoverRoutingTable& operator=(const T2MoverRoutingTable&) {} +	T2Mover* GetMover() const {} +	int GetMoverHPos() const {} +}; diff --git a/src/T2DLL/T2MovieParamArray.cpp b/src/T2DLL/T2MovieParamArray.cpp new file mode 100644 index 0000000..325b4cd --- /dev/null +++ b/src/T2DLL/T2MovieParamArray.cpp @@ -0,0 +1,25 @@ +#include "T2MovieParamArray.h" + +T2MovieParamArray::T2MovieParamArray() { +} + +/*virtual*/ T2MovieParamArray::~T2MovieParamArray() { +} + +int T2MovieParamArray::Regist(unsigned long, int) { +} + +int T2MovieParamArray::GetParam(unsigned long) { +} + +/*static*/ T2MovieParamArray* T2MovieParamArray::ReadMovieParamArray(T2Archive&) { +} + +/*static*/ void T2MovieParamArray::WriteMovieParamArray(T2MovieParamArray*, T2Archive&) { +} + +/*virtual*/ void T2MovieParamArray::Read(T2Archive&) { +} + +/*virtual*/ void T2MovieParamArray::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2MovieParamArray.h b/src/T2DLL/T2MovieParamArray.h new file mode 100644 index 0000000..70993b8 --- /dev/null +++ b/src/T2DLL/T2MovieParamArray.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2MovieParamArray { +public: +	T2MovieParamArray(); +	virtual ~T2MovieParamArray(); +	int Regist(unsigned long, int); +	int GetParam(unsigned long); +	static T2MovieParamArray* ReadMovieParamArray(T2Archive&); +	static void WriteMovieParamArray(T2MovieParamArray*, T2Archive&); +	virtual void Read(T2Archive&); +	virtual void Write(T2Archive&); + +	T2MovieParamArray(const T2MovieParamArray&) {} +	T2MovieParamArray& operator=(const T2MovieParamArray&) {} +}; diff --git a/src/T2DLL/T2MoviePlugin.cpp b/src/T2DLL/T2MoviePlugin.cpp new file mode 100644 index 0000000..2d9250d --- /dev/null +++ b/src/T2DLL/T2MoviePlugin.cpp @@ -0,0 +1,58 @@ +#include "T2MoviePlugin.h" + +T2MoviePlugin::T2MoviePlugin(unsigned long, T2PluginSpecifier&) { +} + +/*virtual*/ T2MoviePlugin::~T2MoviePlugin() { +} + +/*virtual*/ void T2MoviePlugin::LoadRsrcFromStream(CResFile&) { +} + +/*virtual*/ void T2MoviePlugin::GlobalData(T2GlobalData*) { +} + +int T2MoviePlugin::GetMovieLifePhase(T2DateTime*, int) { +} + +void T2MoviePlugin::UnfoldPluginSelf() { +} + +void T2MoviePlugin::ReMake() { +} + +void T2MoviePlugin::GetTitle(CString&, int) { +} + +int T2MoviePlugin::GetNOPersonsR() { +} + +void T2MoviePlugin::SetNOPersonsR(int) { +} + +int T2MoviePlugin::GetNOPersonsF() { +} + +void T2MoviePlugin::SetNOPersonsF(int) { +} + +int T2MoviePlugin::IsFamousFilm() { +} + +int T2MoviePlugin::IsRoadshowFilm() { +} + +void T2MoviePlugin::ChkReMake(int) { +} + +/*static*/ void T2MoviePlugin::sDummyRead(T2Archive&) { +} + +void T2MoviePlugin::Read(T2Archive&) { +} + +void T2MoviePlugin::Write(T2Archive&) { +} + +/*virtual*/ unsigned long T2MoviePlugin::LoadSelf() { +} diff --git a/src/T2DLL/T2MoviePlugin.h b/src/T2DLL/T2MoviePlugin.h new file mode 100644 index 0000000..676ea5f --- /dev/null +++ b/src/T2DLL/T2MoviePlugin.h @@ -0,0 +1,29 @@ +#pragma once +#include "common.h" + +class T2MoviePlugin { +public: +	T2MoviePlugin(unsigned long, T2PluginSpecifier&); +	virtual ~T2MoviePlugin(); +protected: +	virtual void LoadRsrcFromStream(CResFile&); +public: +	virtual void GlobalData(T2GlobalData*); +	int GetMovieLifePhase(T2DateTime*, int); +	void UnfoldPluginSelf(); +	void ReMake(); +	void GetTitle(CString&, int); +	int GetNOPersonsR(); +	void SetNOPersonsR(int); +	int GetNOPersonsF(); +	void SetNOPersonsF(int); +	int IsFamousFilm(); +	int IsRoadshowFilm(); +	void ChkReMake(int); +	static void sDummyRead(T2Archive&); +	void Read(T2Archive&); +	void Write(T2Archive&); +	virtual unsigned long LoadSelf(); + +	T2MoviePlugin& operator=(T2MoviePlugin&) {} +}; diff --git a/src/T2DLL/T2MoviePluginList.cpp b/src/T2DLL/T2MoviePluginList.cpp new file mode 100644 index 0000000..66684eb --- /dev/null +++ b/src/T2DLL/T2MoviePluginList.cpp @@ -0,0 +1,13 @@ +#include "T2MoviePluginList.h" + +T2MoviePluginList::T2MoviePluginList() { +} + +/*virtual*/ T2MoviePluginList::~T2MoviePluginList() { +} + +void T2MoviePluginList::Read(T2Archive&) { +} + +void T2MoviePluginList::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2MoviePluginList.h b/src/T2DLL/T2MoviePluginList.h new file mode 100644 index 0000000..107ca06 --- /dev/null +++ b/src/T2DLL/T2MoviePluginList.h @@ -0,0 +1,10 @@ +#pragma once +#include "common.h" + +class T2MoviePluginList { +public: +	T2MoviePluginList(); +	virtual ~T2MoviePluginList(); +	void Read(T2Archive&); +	void Write(T2Archive&); +}; diff --git a/src/T2DLL/T2MovieTable.cpp b/src/T2DLL/T2MovieTable.cpp new file mode 100644 index 0000000..ff1d779 --- /dev/null +++ b/src/T2DLL/T2MovieTable.cpp @@ -0,0 +1,31 @@ +#include "T2MovieTable.h" + +/*virtual*/ int T2MovieTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +T2MovieTable::T2MovieTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +void T2MovieTable::SetMovieType(int) { +} + +void T2MovieTable::Add(T2MoviePlugin*) { +} + +void T2MovieTable::Add(CFilePluginList*) { +} + +/*virtual*/ void T2MovieTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ void T2MovieTable::DrawCell(CDC*, const TableCellT&) { +} + +void T2MovieTable::ClickCell(const TableCellT&, const CPoint&) { +} + +/*virtual*/ void T2MovieTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ int T2MovieTable::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2MovieTable.h b/src/T2DLL/T2MovieTable.h new file mode 100644 index 0000000..4ea9416 --- /dev/null +++ b/src/T2DLL/T2MovieTable.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2MovieTable { +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	T2MovieTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	void SetMovieType(int); +	void Add(T2MoviePlugin*); +	void Add(CFilePluginList*); +protected: +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual void DrawCell(CDC*, const TableCellT&); +	void ClickCell(const TableCellT&, const CPoint&); +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual ~T2MovieTable() {} +}; diff --git a/src/T2DLL/T2MsgWindowCallback.cpp b/src/T2DLL/T2MsgWindowCallback.cpp new file mode 100644 index 0000000..0b5aaa4 --- /dev/null +++ b/src/T2DLL/T2MsgWindowCallback.cpp @@ -0,0 +1,37 @@ +#include "T2MsgWindowCallback.h" + +/*virtual*/ void T2MsgWindowCallback::CallbackZoomIn() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackZoomOut() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackInView() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackOutView() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackPriceView() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackMaintView() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackTransView() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackEvalView() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackPause(int) { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackCalendar() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackFunds() { +} + +/*virtual*/ void T2MsgWindowCallback::CallbackPopulation() { +} diff --git a/src/T2DLL/T2MsgWindowCallback.h b/src/T2DLL/T2MsgWindowCallback.h new file mode 100644 index 0000000..3227093 --- /dev/null +++ b/src/T2DLL/T2MsgWindowCallback.h @@ -0,0 +1,22 @@ +#pragma once +#include "common.h" + +class T2MsgWindowCallback { +public: +	virtual void CallbackZoomIn(); +	virtual void CallbackZoomOut(); +	virtual void CallbackInView(); +	virtual void CallbackOutView(); +	virtual void CallbackPriceView(); +	virtual void CallbackMaintView(); +	virtual void CallbackTransView(); +	virtual void CallbackEvalView(); +	virtual void CallbackPause(int); +	virtual void CallbackCalendar(); +	virtual void CallbackFunds(); +	virtual void CallbackPopulation(); + +	T2MsgWindowCallback() {} +	T2MsgWindowCallback(const T2MsgWindowCallback&) {} +	T2MsgWindowCallback& operator=(const T2MsgWindowCallback&) {} +}; diff --git a/src/T2DLL/T2Name.cpp b/src/T2DLL/T2Name.cpp new file mode 100644 index 0000000..ab183e3 --- /dev/null +++ b/src/T2DLL/T2Name.cpp @@ -0,0 +1,37 @@ +#include "T2Name.h" + +T2Name::T2Name() { +} + +T2Name::T2Name(T2Archive&) { +} + +T2Name::T2Name(CString, T2Tenant*, int) { +} + +T2Name::T2Name(CString, T2People*, int) { +} + +T2Name::T2Name(CString, T2Mover*, int) { +} + +T2Name::T2Name(CString, T2MoverModule*, int) { +} + +/*virtual*/ T2Name::~T2Name() { +} + +short T2Name::GetName(CString&, unsigned int&) { +} + +void T2Name::SetName(CString) { +} + +void T2Name::MakeFullName(T2TowerDoc*, CString&) { +} + +int T2Name::operator==(const CString&) const { +} + +void T2Name::Write(T2Archive&) const { +} diff --git a/src/T2DLL/T2Name.h b/src/T2DLL/T2Name.h new file mode 100644 index 0000000..290f842 --- /dev/null +++ b/src/T2DLL/T2Name.h @@ -0,0 +1,25 @@ +#pragma once +#include "common.h" + +class T2Name { +public: +	T2Name(); +	T2Name(T2Archive&); +	T2Name(CString, T2Tenant*, int); +	T2Name(CString, T2People*, int); +	T2Name(CString, T2Mover*, int); +	T2Name(CString, T2MoverModule*, int); +	virtual ~T2Name(); +	short GetName(CString&, unsigned int&); +	void SetName(CString); +	void MakeFullName(T2TowerDoc*, CString&); +	int operator==(const CString&) const; +	void Write(T2Archive&) const; + +	int GetSortKey() {} +	int GetType() {} +	unsigned int GetID() {} +	int IsFavorite() const {} +	T2Name(const T2Name&) {} +	T2Name& operator=(const T2Name&) {} +}; diff --git a/src/T2DLL/T2NameList.cpp b/src/T2DLL/T2NameList.cpp new file mode 100644 index 0000000..cee243a --- /dev/null +++ b/src/T2DLL/T2NameList.cpp @@ -0,0 +1,43 @@ +#include "T2NameList.h" + +T2NameList::T2NameList() { +} + +/*virtual*/ T2NameList::~T2NameList() { +} + +unsigned int T2NameList::GetItemCount() { +} + +void T2NameList::Clear() { +} + +void T2NameList::Add(T2Name*) { +} + +void T2NameList::RemoveName(T2Name*) { +} + +T2Name* T2NameList::Search(const T2Tenant*, int) const { +} + +T2Name* T2NameList::Search(const T2Mover*, int) const { +} + +T2Name* T2NameList::Search(const T2MoverModule*, int) const { +} + +T2Name* T2NameList::Search(const T2People*, int) const { +} + +T2Name* T2NameList::Search(const CString&, int) const { +} + +T2Name* T2NameList::FullNameSearch(T2TowerDoc*, const CString&, int) const { +} + +void T2NameList::Read(T2Archive&) { +} + +void T2NameList::Write(T2Archive&) const { +} diff --git a/src/T2DLL/T2NameList.h b/src/T2DLL/T2NameList.h new file mode 100644 index 0000000..82a3e5b --- /dev/null +++ b/src/T2DLL/T2NameList.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" + +class T2NameList { +public: +	T2NameList(); +	virtual ~T2NameList(); +	unsigned int GetItemCount(); +	void Clear(); +	void Add(T2Name*); +	void RemoveName(T2Name*); +	T2Name* Search(const T2Tenant*, int) const; +	T2Name* Search(const T2Mover*, int) const; +	T2Name* Search(const T2MoverModule*, int) const; +	T2Name* Search(const T2People*, int) const; +	T2Name* Search(const CString&, int) const; +	T2Name* FullNameSearch(T2TowerDoc*, const CString&, int) const; +	void Read(T2Archive&); +	void Write(T2Archive&) const; + +	T2NameList(const T2NameList&) {} +	T2NameList& operator=(const T2NameList&) {} +}; diff --git a/src/T2DLL/T2NameTable.cpp b/src/T2DLL/T2NameTable.cpp new file mode 100644 index 0000000..c68c2fd --- /dev/null +++ b/src/T2DLL/T2NameTable.cpp @@ -0,0 +1,34 @@ +#include "T2NameTable.h" + +/*virtual*/ int T2NameTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +T2NameTable::T2NameTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +T2Name* T2NameTable::GetSelectedName() { +} + +/*virtual*/ void T2NameTable::ClickSelf(POINT) { +} + +/*virtual*/ void T2NameTable::OnT2DlgItemLButtonDown(unsigned int, CPoint) { +} + +/*virtual*/ void T2NameTable::Add(T2NameList*) { +} + +/*virtual*/ void T2NameTable::Add(T2Name*) { +} + +/*virtual*/ void T2NameTable::RemoveCurrentCell() { +} + +/*virtual*/ void T2NameTable::DrawCell(CDC*, const TableCellT&) { +} + +/*virtual*/ void T2NameTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ int T2NameTable::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2NameTable.h b/src/T2DLL/T2NameTable.h new file mode 100644 index 0000000..139c611 --- /dev/null +++ b/src/T2DLL/T2NameTable.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2NameTable { +protected: +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +public: +	T2NameTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	T2Name* GetSelectedName(); +	virtual void ClickSelf(POINT); +protected: +	virtual void OnT2DlgItemLButtonDown(unsigned int, CPoint); +public: +	virtual void Add(T2NameList*); +	virtual void Add(T2Name*); +	virtual void RemoveCurrentCell(); +protected: +	virtual void DrawCell(CDC*, const TableCellT&); +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual ~T2NameTable() {} +}; diff --git a/src/T2DLL/T2Object.cpp b/src/T2DLL/T2Object.cpp new file mode 100644 index 0000000..7336a5a --- /dev/null +++ b/src/T2DLL/T2Object.cpp @@ -0,0 +1,52 @@ +#include "T2Archive.h" +#include "T2Object.h" + +T2Object::T2Object() { +	mUsed = false; +	mStatus = 0; +	mFavorite = false; +} + +/*virtual*/ void T2Object::SetFavorite(BOOL v) { +	mFavorite = v; +} + +/*virtual*/ void T2Object::Load(T2Archive& archive, T2TowerDoc* towerDoc) { +	LoadSelf(archive, towerDoc); +	InitLoaded(); +} + +/*virtual*/ void T2Object::Save(T2Archive& archive) { +	SaveSelf(archive); +} + +/*virtual*/ void T2Object::LoadSelf(T2Archive& archive, T2TowerDoc* towerDoc) { +	unsigned char b; +	short s; + +	archive >> b; +	mUsed = (b != 0); + +	archive >> s; +	mStatus = s; + +	archive >> b; +	mFavorite = (b != 0); +} + +/*virtual*/ void T2Object::SaveSelf(T2Archive& archive) { +	unsigned char b; +	short s; + +	b = (mUsed != 0); +	archive << b; + +	s = mStatus; +	archive << s; + +	b = (mFavorite != 0); +	archive << b; +} + +/*virtual*/ void T2Object::InitLoaded() { +} diff --git a/src/T2DLL/T2Object.h b/src/T2DLL/T2Object.h new file mode 100644 index 0000000..8084bc7 --- /dev/null +++ b/src/T2DLL/T2Object.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" +#include "CLink.h" + +class DLL_EXPORT T2Object { +public: +	T2Object(); +	virtual ~T2Object() {} + +	virtual void SetUsed(BOOL u) { mUsed = u; } +	virtual int Enter(CLink*) { return 0; } +	virtual int Leave(CLink*) { return 0; } +	virtual unsigned int Idle(T2TowerDoc*) { return 0; } +	virtual void SetFavorite(BOOL v); +	virtual void Load(T2Archive& archive, T2TowerDoc* towerDoc); +	virtual void Save(T2Archive& archive); +	virtual void LoadSelf(T2Archive& archive, T2TowerDoc* towerDoc); +	virtual void SaveSelf(T2Archive& archive); + +	BOOL IsUsed() const { return mUsed; } +	int GetStatus() const { return mStatus; } +	void SetStatus(int s) { mStatus = s; } +	BOOL IsFavorite() const { return mFavorite; } + +protected: +	virtual void InitLoaded(); + +	BOOL mUsed; +	int mStatus; +	BOOL mFavorite; +}; diff --git a/src/T2DLL/T2ObjectArray.cpp b/src/T2DLL/T2ObjectArray.cpp new file mode 100644 index 0000000..e6a9e51 --- /dev/null +++ b/src/T2DLL/T2ObjectArray.cpp @@ -0,0 +1,12 @@ +#include "T2ObjectArray.h" + +T2ObjectArray::T2ObjectArray(unsigned int startID) { +	mStartID = startID; +} + +/*virtual*/ T2ObjectArray::~T2ObjectArray() { +} + +/*virtual*/ T2Object* T2ObjectArray::GetIndexObject(int) { +	return NULL; +} diff --git a/src/T2DLL/T2ObjectArray.h b/src/T2DLL/T2ObjectArray.h new file mode 100644 index 0000000..5c422da --- /dev/null +++ b/src/T2DLL/T2ObjectArray.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2ObjectArray { +public: +	T2ObjectArray(unsigned int startID = 1); +	virtual ~T2ObjectArray(); +	virtual T2Object* GetIndexObject(int); + +	unsigned int GetStartID() { return mStartID; } +	virtual T2Object* FindUnusedObject() { return NULL; } +	virtual void DispatchIdle(T2TowerDoc*, int) {} + +protected: +	unsigned int mStartID; +}; diff --git a/src/T2DLL/T2ObjectArrayList.cpp b/src/T2DLL/T2ObjectArrayList.cpp new file mode 100644 index 0000000..20ccd32 --- /dev/null +++ b/src/T2DLL/T2ObjectArrayList.cpp @@ -0,0 +1,13 @@ +#include "T2ObjectArrayList.h" + +T2ObjectArrayList::T2ObjectArrayList() { +} + +/*virtual*/ T2ObjectArrayList::~T2ObjectArrayList() { +} + +void T2ObjectArrayList::AddObjectArray(T2ObjectArray*) { +} + +T2ObjectArray* T2ObjectArrayList::GetObjectArrayAt(int) { +} diff --git a/src/T2DLL/T2ObjectArrayList.h b/src/T2DLL/T2ObjectArrayList.h new file mode 100644 index 0000000..6fd379e --- /dev/null +++ b/src/T2DLL/T2ObjectArrayList.h @@ -0,0 +1,13 @@ +#pragma once +#include "common.h" + +class T2ObjectArrayList { +public: +	T2ObjectArrayList(); +	virtual ~T2ObjectArrayList(); +	void AddObjectArray(T2ObjectArray*); +	T2ObjectArray* GetObjectArrayAt(int); + +	T2ObjectArrayList(const T2ObjectArrayList&) {} +	T2ObjectArrayList& operator=(const T2ObjectArrayList&) {} +}; diff --git a/src/T2DLL/T2OptionPluginList.cpp b/src/T2DLL/T2OptionPluginList.cpp new file mode 100644 index 0000000..b8d49d6 --- /dev/null +++ b/src/T2DLL/T2OptionPluginList.cpp @@ -0,0 +1,16 @@ +#include "T2OptionPluginList.h" + +T2OptionPluginList::T2OptionPluginList() { +} + +/*virtual*/ T2OptionPluginList::~T2OptionPluginList() { +} + +void T2OptionPluginList::Add(T2OptionPlugin*) { +} + +void T2OptionPluginList::OnIdle(T2TowerDoc*) { +} + +int T2OptionPluginList::DispatchEvent(OPTIONEVENTTYPE, T2TowerDoc*, void*) { +} diff --git a/src/T2DLL/T2OptionPluginList.h b/src/T2DLL/T2OptionPluginList.h new file mode 100644 index 0000000..bb25c65 --- /dev/null +++ b/src/T2DLL/T2OptionPluginList.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2OptionPluginList { +public: +	T2OptionPluginList(); +	virtual ~T2OptionPluginList(); +	void Add(T2OptionPlugin*); +	void OnIdle(T2TowerDoc*); +	int DispatchEvent(OPTIONEVENTTYPE, T2TowerDoc*, void*); + +	T2OptionPluginList(const T2OptionPluginList&) {} +	T2OptionPluginList& operator=(const T2OptionPluginList&) {} +}; diff --git a/src/T2DLL/T2OutDecoration.cpp b/src/T2DLL/T2OutDecoration.cpp new file mode 100644 index 0000000..ba8e432 --- /dev/null +++ b/src/T2DLL/T2OutDecoration.cpp @@ -0,0 +1,22 @@ +#include "T2OutDecoration.h" + +T2OutDecoration::T2OutDecoration(T2TowerEvent*, CResFile*, int) { +} + +/*virtual*/ T2OutDecoration::~T2OutDecoration() { +} + +/*virtual*/ int T2OutDecoration::Exec(T2TowerDoc*) { +} + +void T2OutDecoration::DoDecoration(T2TowerDoc*, VIEWMODE, int) { +} + +/*virtual*/ void T2OutDecoration::ViewModeChanged(T2TowerDoc*, VIEWMODE) { +} + +void T2OutDecoration::CheckRoofTop(T2Equip*) { +} + +LArray* T2OutDecoration::MakeLoofList() { +} diff --git a/src/T2DLL/T2OutDecoration.h b/src/T2DLL/T2OutDecoration.h new file mode 100644 index 0000000..c865bab --- /dev/null +++ b/src/T2DLL/T2OutDecoration.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class T2OutDecoration { +public: +	T2OutDecoration(T2TowerEvent*, CResFile*, int); +	virtual ~T2OutDecoration(); +	virtual int Exec(T2TowerDoc*); +	void DoDecoration(T2TowerDoc*, VIEWMODE, int); +	virtual void ViewModeChanged(T2TowerDoc*, VIEWMODE); +	void CheckRoofTop(T2Equip*); +private: +	LArray* MakeLoofList(); + +public: +	virtual unsigned long GetID() {} +	virtual int IsBeginTime(unsigned int) {} +	T2OutDecoration(const T2OutDecoration&) {} +	T2OutDecoration& operator=(const T2OutDecoration&) {} +}; diff --git a/src/T2DLL/T2OutObj.cpp b/src/T2DLL/T2OutObj.cpp new file mode 100644 index 0000000..7eb99b0 --- /dev/null +++ b/src/T2DLL/T2OutObj.cpp @@ -0,0 +1,40 @@ +#include "T2OutObj.h" + +T2OutObj::T2OutObj() { +} + +/*virtual*/ T2OutObj::~T2OutObj() { +} + +/*virtual*/ void T2OutObj::Draw(T2TowerDoc*, const CRect&) { +} + +/*virtual*/ PROCCODE T2OutObj::DoDestruct(T2TowerDoc*, int, CPoint, CPoint, CRect&) { +} + +/*virtual*/ PROCCODE T2OutObj::Destruct(T2TowerDoc*, RECT&) { +} + +/*virtual*/ void T2OutObj::GetOutObjArea(RECT&) const { +} + +/*virtual*/ unsigned int T2OutObj::Idle(T2TowerDoc*) { +} + +/*virtual*/ int T2OutObj::InitOutObj(T2OuterObjDef*, const RECT&, unsigned int) { +} + +/*virtual*/ void T2OutObj::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2OutObj::SaveSelf(T2Archive&) { +} + +/*virtual*/ void T2OutObj::StartBuild(T2TowerDoc*) { +} + +/*virtual*/ T2InfoDialog* T2OutObj::ShowInfoDialog(T2TowerDoc*) { +} + +/*virtual*/ void T2OutObj::DrawHitMask(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2OutObj.h b/src/T2DLL/T2OutObj.h new file mode 100644 index 0000000..615895d --- /dev/null +++ b/src/T2DLL/T2OutObj.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2OutObj { +public: +	T2OutObj(); +	virtual ~T2OutObj(); +	virtual void Draw(T2TowerDoc*, const CRect&); +	virtual PROCCODE DoDestruct(T2TowerDoc*, int, CPoint, CPoint, CRect&); +	virtual PROCCODE Destruct(T2TowerDoc*, RECT&); +	virtual void GetOutObjArea(RECT&) const; +	virtual unsigned int Idle(T2TowerDoc*); +	virtual int InitOutObj(T2OuterObjDef*, const RECT&, unsigned int); +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); +	virtual void StartBuild(T2TowerDoc*); +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*); +	virtual void DrawHitMask(T2TowerDoc*); + +	T2ToolDef* GetToolDef() const {} +	void SetToolDef(T2ToolDef*) {} +	T2OutObj(const T2OutObj&) {} +	T2OutObj& operator=(const T2OutObj&) {} +}; diff --git a/src/T2DLL/T2OutObjArray.cpp b/src/T2DLL/T2OutObjArray.cpp new file mode 100644 index 0000000..ef96821 --- /dev/null +++ b/src/T2DLL/T2OutObjArray.cpp @@ -0,0 +1,22 @@ +#include "T2OutObjArray.h" + +T2OutObjArray::T2OutObjArray(unsigned int) { +} + +/*virtual*/ T2OutObjArray::~T2OutObjArray() { +} + +T2OutObj* T2OutObjArray::FindUnusedOutObj() const { +} + +/*virtual*/ void T2OutObjArray::DispatchIdle(T2TowerDoc*, int) { +} + +int T2OutObjArray::CalcMentenanceCost(T2TowerDoc*) const { +} + +void T2OutObjArray::Read(T2Archive&, T2TowerDoc*) { +} + +void T2OutObjArray::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2OutObjArray.h b/src/T2DLL/T2OutObjArray.h new file mode 100644 index 0000000..504f1d7 --- /dev/null +++ b/src/T2DLL/T2OutObjArray.h @@ -0,0 +1,18 @@ +#pragma once +#include "common.h" + +class T2OutObjArray { +public: +	T2OutObjArray(unsigned int); +	virtual ~T2OutObjArray(); +	T2OutObj* FindUnusedOutObj() const; +	virtual void DispatchIdle(T2TowerDoc*, int); +	int CalcMentenanceCost(T2TowerDoc*) const; +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	T2OutObj* GetIndexOutObj(int) {} +	T2OutObjArray(const T2OutObjArray&) {} +	T2OutObjArray& operator=(const T2OutObjArray&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2OutObjArrayList.cpp b/src/T2DLL/T2OutObjArrayList.cpp new file mode 100644 index 0000000..3948561 --- /dev/null +++ b/src/T2DLL/T2OutObjArrayList.cpp @@ -0,0 +1,34 @@ +#include "T2OutObjArrayList.h" + +T2OutObjArrayList::T2OutObjArrayList() { +} + +/*virtual*/ T2OutObjArrayList::~T2OutObjArrayList() { +} + +void T2OutObjArrayList::Add(T2OutObjArray*) { +} + +T2OutObjArray* T2OutObjArrayList::GetItemAt(int) { +} + +T2OutObj* T2OutObjArrayList::FindUnusedOutObj() { +} + +void T2OutObjArrayList::DispatchIdle(T2TowerDoc*) { +} + +T2OutObj* T2OutObjArrayList::GetIndOutObj(unsigned int) { +} + +T2OutObj* T2OutObjArrayList::GetOutObjByID(unsigned int) { +} + +int T2OutObjArrayList::CalcMentenanceCost(T2TowerDoc*) const { +} + +void T2OutObjArrayList::Read(T2Archive&, T2TowerDoc*) { +} + +void T2OutObjArrayList::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2OutObjArrayList.h b/src/T2DLL/T2OutObjArrayList.h new file mode 100644 index 0000000..137c182 --- /dev/null +++ b/src/T2DLL/T2OutObjArrayList.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class T2OutObjArrayList { +public: +	T2OutObjArrayList(); +	virtual ~T2OutObjArrayList(); +	void Add(T2OutObjArray*); +	T2OutObjArray* GetItemAt(int); +	T2OutObj* FindUnusedOutObj(); +	void DispatchIdle(T2TowerDoc*); +	T2OutObj* GetIndOutObj(unsigned int); +	T2OutObj* GetOutObjByID(unsigned int); +	int CalcMentenanceCost(T2TowerDoc*) const; +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	T2OutObjArrayList(const T2OutObjArrayList&) {} +	T2OutObjArrayList& operator=(const T2OutObjArrayList&) {} +}; diff --git a/src/T2DLL/T2OutObjInfoDialog.cpp b/src/T2DLL/T2OutObjInfoDialog.cpp new file mode 100644 index 0000000..fe3fce4 --- /dev/null +++ b/src/T2DLL/T2OutObjInfoDialog.cpp @@ -0,0 +1,7 @@ +#include "T2OutObjInfoDialog.h" + +T2OutObjInfoDialog::T2OutObjInfoDialog(T2OutObj*) { +} + +/*virtual*/ T2OutObjInfoDialog::~T2OutObjInfoDialog() { +} diff --git a/src/T2DLL/T2OutObjInfoDialog.h b/src/T2DLL/T2OutObjInfoDialog.h new file mode 100644 index 0000000..e06a0c6 --- /dev/null +++ b/src/T2DLL/T2OutObjInfoDialog.h @@ -0,0 +1,8 @@ +#pragma once +#include "common.h" + +class T2OutObjInfoDialog { +public: +	T2OutObjInfoDialog(T2OutObj*); +	virtual ~T2OutObjInfoDialog(); +}; diff --git a/src/T2DLL/T2OuterObjDef.cpp b/src/T2DLL/T2OuterObjDef.cpp new file mode 100644 index 0000000..cefb374 --- /dev/null +++ b/src/T2DLL/T2OuterObjDef.cpp @@ -0,0 +1,28 @@ +#include "T2OuterObjDef.h" + +T2OuterObjDef::T2OuterObjDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldDef*, T2ToolPlugin*) { +} + +/*virtual*/ T2OuterObjDef::~T2OuterObjDef() { +} + +/*virtual*/ CURSORTYPE T2OuterObjDef::QueryCursor(T2TowerDoc*, POINT, CString&, RECT&, POINT&, int, unsigned int, int) { +} + +/*virtual*/ void T2OuterObjDef::DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*) const { +} + +/*virtual*/ AREACHECKCODE T2OuterObjDef::AreaCheck(T2TowerDoc*, RECT&, unsigned int, int) { +} + +/*virtual*/ T2InfoDialog* T2OuterObjDef::ShowInfoDialog(T2TowerDoc*, T2OutObj*) { +} + +/*virtual*/ int T2OuterObjDef::GetInfoDialogID(T2TowerDoc*, const T2OutObj*) const { +} + +/*virtual*/ T2InfoDialog* T2OuterObjDef::ConstructInfoDialog(T2OutObj*) { +} + +/*virtual*/ PROCCODE T2OuterObjDef::DoDestructProc(T2TowerDoc*, T2HaveOutViewObject*, POINT, RECT&) { +} diff --git a/src/T2DLL/T2OuterObjDef.h b/src/T2DLL/T2OuterObjDef.h new file mode 100644 index 0000000..1ffea45 --- /dev/null +++ b/src/T2DLL/T2OuterObjDef.h @@ -0,0 +1,19 @@ +#pragma once +#include "common.h" + +class T2OuterObjDef { +public: +	T2OuterObjDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldDef*, T2ToolPlugin*); +	virtual ~T2OuterObjDef(); +	virtual CURSORTYPE QueryCursor(T2TowerDoc*, POINT, CString&, RECT&, POINT&, int, unsigned int, int); +	virtual void DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*) const; +	virtual AREACHECKCODE AreaCheck(T2TowerDoc*, RECT&, unsigned int, int); +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*, T2OutObj*); +	virtual int GetInfoDialogID(T2TowerDoc*, const T2OutObj*) const; +	virtual T2InfoDialog* ConstructInfoDialog(T2OutObj*); +	virtual PROCCODE DoDestructProc(T2TowerDoc*, T2HaveOutViewObject*, POINT, RECT&); + +	virtual int IsOutObj() {} +	virtual void SetTenantDef(T2TenantDef*) {} +	T2OuterObjDef& operator=(T2OuterObjDef&) {} +}; diff --git a/src/T2DLL/T2OuterObjList.cpp b/src/T2DLL/T2OuterObjList.cpp new file mode 100644 index 0000000..09c2908 --- /dev/null +++ b/src/T2DLL/T2OuterObjList.cpp @@ -0,0 +1,4 @@ +#include "T2OuterObjList.h" + +T2OuterObjList::~T2OuterObjList() { +} diff --git a/src/T2DLL/T2OuterObjList.h b/src/T2DLL/T2OuterObjList.h new file mode 100644 index 0000000..0ee652f --- /dev/null +++ b/src/T2DLL/T2OuterObjList.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" + +class T2OuterObjList { +public: +	~T2OuterObjList(); + +	T2OuterObjList() {} +	T2OuterObjList(const T2OuterObjList&) {} +	T2OuterObjList& operator=(const T2OuterObjList&) {} +}; diff --git a/src/T2DLL/T2OuterObjPlugin.cpp b/src/T2DLL/T2OuterObjPlugin.cpp new file mode 100644 index 0000000..cc33816 --- /dev/null +++ b/src/T2DLL/T2OuterObjPlugin.cpp @@ -0,0 +1,13 @@ +#include "T2OuterObjPlugin.h" + +T2OuterObjPlugin::T2OuterObjPlugin(unsigned long, T2PluginSpecifier&) { +} + +/*virtual*/ T2OuterObjPlugin::~T2OuterObjPlugin() { +} + +int T2OuterObjPlugin::LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*) { +} + +void T2OuterObjPlugin::LoadT2OuterObjDef(T2WorldDef*) { +} diff --git a/src/T2DLL/T2OuterObjPlugin.h b/src/T2DLL/T2OuterObjPlugin.h new file mode 100644 index 0000000..38b4c36 --- /dev/null +++ b/src/T2DLL/T2OuterObjPlugin.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2OuterObjPlugin { +public: +	T2OuterObjPlugin(unsigned long, T2PluginSpecifier&); +	virtual ~T2OuterObjPlugin(); +	int LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*); +private: +	void LoadT2OuterObjDef(T2WorldDef*); + +public: +	T2OuterObjPlugin& operator=(T2OuterObjPlugin&) {} +}; diff --git a/src/T2DLL/T2OutsideInfo.cpp b/src/T2DLL/T2OutsideInfo.cpp new file mode 100644 index 0000000..e90fb10 --- /dev/null +++ b/src/T2DLL/T2OutsideInfo.cpp @@ -0,0 +1,46 @@ +#include "T2OutsideInfo.h" + +T2OutsideInfo::T2OutsideInfo(const T2FloorInfo&) { +} + +/*virtual*/ T2OutsideInfo::~T2OutsideInfo() { +} + +void T2OutsideInfo::Reset() { +} + +void T2OutsideInfo::SetArea(const RECT&) { +} + +POINT T2OutsideInfo::CurrentPt() const { +} + +unsigned int T2OutsideInfo::GetUnitInfo(int, int) const { +} + +T2OutObj* T2OutsideInfo::GetOutObj(int, int) const { +} + +void T2OutsideInfo::FillOutObjID(const RECT&, unsigned int) { +} + +unsigned int T2OutsideInfo::GetOutObjID(int, int) const { +} + +int T2OutsideInfo::CalcNextUnitInfo() { +} + +int T2OutsideInfo::NextValue(unsigned int&) { +} + +int T2OutsideInfo::NextIndex(int&) { +} + +int T2OutsideInfo::NextOutObj(T2OutObj*&) { +} + +void T2OutsideInfo::Read(T2Archive&) { +} + +void T2OutsideInfo::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2OutsideInfo.h b/src/T2DLL/T2OutsideInfo.h new file mode 100644 index 0000000..0f87d43 --- /dev/null +++ b/src/T2DLL/T2OutsideInfo.h @@ -0,0 +1,29 @@ +#pragma once +#include "common.h" + +class T2OutsideInfo { +public: +	T2OutsideInfo(const T2FloorInfo&); +	virtual ~T2OutsideInfo(); +protected: +	void Reset(); +public: +	void SetArea(const RECT&); +protected: +	POINT CurrentPt() const; +	unsigned int GetUnitInfo(int, int) const; +	T2OutObj* GetOutObj(int, int) const; +public: +	void FillOutObjID(const RECT&, unsigned int); +	unsigned int GetOutObjID(int, int) const; +protected: +	int CalcNextUnitInfo(); +	int NextValue(unsigned int&); +	int NextIndex(int&); +public: +	int NextOutObj(T2OutObj*&); +	void Read(T2Archive&); +	void Write(T2Archive&); + +	T2OutsideInfo(const T2OutsideInfo&) {} +}; diff --git a/src/T2DLL/T2PaletteAnime.cpp b/src/T2DLL/T2PaletteAnime.cpp new file mode 100644 index 0000000..da9fc8e --- /dev/null +++ b/src/T2DLL/T2PaletteAnime.cpp @@ -0,0 +1,220 @@ +#include "GlobalFunc.h" +#include "T2DateTime.h" +#include "T2DayLightFilter.h" +#include "T2PaletteAnime.h" +#include "T2PaletteAnimeDef.h" +#include "T2TowerDoc.h" +#include "T2TowerMainView.h" +#include "T2WeatherFilter.h" +#include "T2WorldDef.h" + +T2PaletteAnime::T2PaletteAnime(T2WorldDef* worldDef, T2DateTime* dateTime) { +	Init(); + +	mWorldDef = worldDef; +	mWorldPlugin = (T2WorldPlugin *) mWorldDef->GetPlugin(); +	mPaletteAnimeDef = worldDef->GetPaletteAnimeDef(); +	mInterCTab = MakeInterCTab(); +	mDayLightFilter = new T2DayLightFilter; +	mWeatherFilter = new T2WeatherFilter; + +	AdjustWindowColor(dateTime); +} + +void T2PaletteAnime::Init() { +	mWorldDef = NULL; +	mWorldPlugin = NULL; +	mPaletteAnimeDef = NULL; +	mInterCTab = NULL; +	mPaletteUpdated = false; +	mSkyState = 0; +	mSkyCount = 0; +	mSECount = 0; +	mSEKind = 0; +	mSETimeNextTick = 0; +	mDayLightFilter = NULL; +	mWeatherFilter = NULL; +} + +/*virtual*/ T2PaletteAnime::~T2PaletteAnime() { +	if (mInterCTab) +		free(mInterCTab); +	if (mDayLightFilter) +		delete mDayLightFilter; +	if (mWeatherFilter) +		delete mWeatherFilter; +} + +LOGPALETTE* T2PaletteAnime::MakeInterCTab() { +	LOGPALETTE *pal = (LOGPALETTE *) malloc(sizeof(LOGPALETTE) + sizeof(PALETTEENTRY) * 256); + +	for (int i = 0; i < 256; i++) { +		pal->palPalEntry[i].peRed = 0; +		pal->palPalEntry[i].peGreen = 0; +		pal->palPalEntry[i].peBlue = 0; +		if (i < mPaletteAnimeDef->GetNumOfAnimColor()) +			pal->palPalEntry[i].peFlags = PC_RESERVED; +		else +			pal->palPalEntry[i].peFlags = 0; +	} + +	pal->palVersion = 0x300; // is there a GDI constant for this? +	pal->palNumEntries = 256; + +	return pal; +} + +BOOL T2PaletteAnime::IsSETime() { +	BOOL result = false; +	DWORD now = TickCount(); + +	if (mSETimeNextTick <= now) { +		mSETimeNextTick = now + 2; +		mSECount++; +		if (mSECount >= 60) +			mSECount = 0; +		result = true; +	} + +	return result; +} + +void T2PaletteAnime::ChangeSE() { +	mPaletteUpdated = mWorldDef->ChangeFastSEProc(this) == BOOL3_1; + +	if ((mSECount % mPaletteAnimeDef->GetSEInterval()) == 0) { +		mSEKind++; +		if (mSEKind >= mPaletteAnimeDef->GetNumOfSEKind()) +			mSEKind = 0; + +		int numOfSEColor = mPaletteAnimeDef->GetNumOfSEColor(); +		int interStartIndex = mPaletteAnimeDef->GetNumOfRefrectColor() + mPaletteAnimeDef->GetNumOfSkyColor(); +		int seStartIndex = numOfSEColor * mSEKind; +		LOGPALETTE *sePal = mPaletteAnimeDef->GetSEPalette(); + +		for (int i = 0; i < numOfSEColor; i++) { +			mInterCTab->palPalEntry[interStartIndex + i].peRed = sePal->palPalEntry[seStartIndex + i].peRed; +			mInterCTab->palPalEntry[interStartIndex + i].peGreen = sePal->palPalEntry[seStartIndex + i].peGreen; +			mInterCTab->palPalEntry[interStartIndex + i].peBlue = sePal->palPalEntry[seStartIndex + i].peBlue; +		} + +		mWorldDef->ChangeSEProc(this); +		mPaletteUpdated = true; +	} +} + +void T2PaletteAnime::RotateDayLightPalette(unsigned int start, unsigned int count) const { +	RotatePalette(mPaletteAnimeDef->GetDayLightPalette(), start, count); +	RotatePalette(mInterCTab, start, count); +} + +void T2PaletteAnime::RotatePalette(LOGPALETTE* pal, unsigned int start, unsigned int count) const { +	PALETTEENTRY save = pal->palPalEntry[start]; + +	for (unsigned int i = start + 1; i < (start + count); i++) { +		PALETTEENTRY entry = pal->palPalEntry[i]; +		pal->palPalEntry[i - 1] = entry; +	} + +	pal->palPalEntry[start + count - 1] = save; +} + +void T2PaletteAnime::AdjustSkyState(T2DateTime* dateTime) { +	if (mWorldDef->AdjustSkyStateProc(this, dateTime) == BOOL3_NEG1) { +		mDayLightFilter->SetTime(0, (dateTime->GetRawMinutes() * 1000) / 1440); +	} +} + +BOOL T2PaletteAnime::IsChangeSkyTime() { +	BOOL result = false; + +	if (mSkyCount > 0) { +		mSkyCount--; +		if ((mSkyCount % 6) == 0) +			result = true; +	} + +	return result; +} + +void T2PaletteAnime::ChangeSkyColor() { +	BOOL3 result = mWorldDef->ChangeSkyColorProc(this); +	if (result == BOOL3_1) { +		mPaletteUpdated = true; +	} else if (result == BOOL3_NEG1) { +		int i; +		int numOfSkyColor = mPaletteAnimeDef->GetNumOfSkyColor(); +		int numOfRefrectColor = mPaletteAnimeDef->GetNumOfRefrectColor(); +		LOGPALETTE *dayLightPalette = mPaletteAnimeDef->GetDayLightPalette(); + +		for (i = 0; i < numOfSkyColor; i++) { +			RGBQUAD c; +			c.rgbRed = dayLightPalette->palPalEntry[i].peRed; +			c.rgbGreen = dayLightPalette->palPalEntry[i].peGreen; +			c.rgbBlue = dayLightPalette->palPalEntry[i].peBlue; +			mDayLightFilter->SkyColor(&c); +			mInterCTab->palPalEntry[i].peRed = c.rgbRed; +			mInterCTab->palPalEntry[i].peGreen = c.rgbGreen; +			mInterCTab->palPalEntry[i].peBlue = c.rgbBlue; +		} + +		for (i = 0; i < numOfRefrectColor; i++) { +			RGBQUAD c; +			c.rgbRed = dayLightPalette->palPalEntry[i + numOfSkyColor].peRed; +			c.rgbGreen = dayLightPalette->palPalEntry[i + numOfSkyColor].peGreen; +			c.rgbBlue = dayLightPalette->palPalEntry[i + numOfSkyColor].peBlue; +			mDayLightFilter->RefractionColor(&c); +			mInterCTab->palPalEntry[i + numOfSkyColor].peRed = c.rgbRed; +			mInterCTab->palPalEntry[i + numOfSkyColor].peGreen = c.rgbGreen; +			mInterCTab->palPalEntry[i + numOfSkyColor].peBlue = c.rgbBlue; +		} + +		mPaletteUpdated = true; +	} +} + +void T2PaletteAnime::MinuteChanged(T2DateTime* dateTime) { +	unsigned int minute = dateTime->GetMinutes(); +	if (mWorldDef->UseOwnSkyPaletteFunction()) { +		if (minute == 1) +			AdjustSkyState(dateTime); +		if (IsChangeSkyTime()) +			ChangeSkyColor(); +	} else { +		if ((minute % 6) == 0) { +			AdjustSkyState(dateTime); +			ChangeSkyColor(); +		} +	} +} + +void T2PaletteAnime::DoAnimatePalette() { +	if (mPaletteUpdated) { +		GetCurrentT2TowerDoc()->towerDoc_vf11C( +			mPaletteAnimeDef->GetAnimStartIndex(), +			mPaletteAnimeDef->GetNumOfAnimColor(), +			mInterCTab->palPalEntry +		); +		mPaletteUpdated = false; +	} +} + +void T2PaletteAnime::ReplaceDayLightPalette(int id) { +	mPaletteAnimeDef->ReplaceDayLightPalette(mWorldDef->mModuleHandle, id); +	mPaletteUpdated = false; +} + +void T2PaletteAnime::SetSkyState(int skyState, int skyCount) { +	if (mSkyState != skyState) +		GetCurrentT2TowerDoc()->GetTowerMainView()->tmv_vf124(true); + +	mSkyState = skyState; +	mSkyCount = skyCount; +} + +void T2PaletteAnime::AdjustWindowColor(T2DateTime* dateTime) { +	AdjustSkyState(dateTime); +	ChangeSkyColor(); +	ChangeSE(); +	DoAnimatePalette(); +} diff --git a/src/T2DLL/T2PaletteAnime.h b/src/T2DLL/T2PaletteAnime.h new file mode 100644 index 0000000..fd6ef53 --- /dev/null +++ b/src/T2DLL/T2PaletteAnime.h @@ -0,0 +1,69 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2PaletteAnime { +public: +	T2PaletteAnime(T2WorldDef*, T2DateTime*); +	virtual ~T2PaletteAnime(); + +	int IsSETime(); +	void ChangeSE(); +	void RotateDayLightPalette(unsigned int, unsigned int) const; +	void MinuteChanged(T2DateTime*); +	void DoAnimatePalette(); +	void ReplaceDayLightPalette(int); +	void SetSkyState(int, int); + +	T2PaletteAnimeDef* GetPaletteAnimeDef() const { return mPaletteAnimeDef; } +	int GetSkyState() const { return mSkyState; } +	int GetSkyCount() const { return mSkyCount; } +	int GetSECount() const { return mSECount; } +	LOGPALETTE* GetInterPalette() { return mInterCTab; } +	int GetSEKind() const { return mSEKind; } +	BOOL IsUpdated() const { return mPaletteUpdated; } +	void ClearUpdate() { mPaletteUpdated = false; } +	void IncSECount() { +		mSECount++; +		if (mSECount >= 60) +			mSECount = 0; +	} +	BOOL IsFine() const { +		return (mSkyState == 3) || (mSkyState == 4); +	} +	BOOL IsSnow() const { return (mSkyState == 4); } +	BOOL IsShininDay() const { +		switch (mSkyState) { +			case 3: +			case 4: +			case 9: +			case 10: +				return false; +			default: +				return true; +		} +	} + +protected: +	void RotatePalette(LOGPALETTE*, unsigned int, unsigned int) const; +	void AdjustSkyState(T2DateTime*); +	int IsChangeSkyTime(); +	void ChangeSkyColor(); + +private: +	void Init(); +	LOGPALETTE* MakeInterCTab(); +	void AdjustWindowColor(T2DateTime*); + +	T2WorldDef *mWorldDef; +	T2WorldPlugin *mWorldPlugin; +	T2PaletteAnimeDef *mPaletteAnimeDef; +	LOGPALETTE *mInterCTab; +	BOOL mPaletteUpdated; +	int mSkyState; +	int mSkyCount; +	int mSECount; +	int mSEKind; +	unsigned int mSETimeNextTick; +	T2DayLightFilter *mDayLightFilter; +	T2WeatherFilter *mWeatherFilter; +}; diff --git a/src/T2DLL/T2PaletteAnimeDef.cpp b/src/T2DLL/T2PaletteAnimeDef.cpp new file mode 100644 index 0000000..98628fc --- /dev/null +++ b/src/T2DLL/T2PaletteAnimeDef.cpp @@ -0,0 +1,112 @@ +#include "CResFile.h" +#include "GlobalFunc.h" +#include "T2PaletteAnimeDef.h" + +int DLL_EXPORT gCommonColor[20]; + +T2PaletteAnimeDef::T2PaletteAnimeDef(HINSTANCE instance, CResFile* resFile) { +	int i, j; + +	Init(); + +	*resFile >> mNumOfTowerColor; +	*resFile >> mNumOfAnimColor; +	*resFile >> mAnimStartIndex; +	*resFile >> mNumOfRefrectColor; +	*resFile >> mNumOfSkyColor; +	*resFile >> mNumOfSEKind; +	*resFile >> mNumOfSEColor; +	*resFile >> mSEInterval; + +	LOGPALETTE *basePal = LoadACTPaletteEntries(instance, 100); +#line 22 +	_ASSERT(basePal); + +	for (i = mAnimStartIndex; i < (mAnimStartIndex + mNumOfAnimColor); i++) +		basePal->palPalEntry[i].peFlags = PC_RESERVED; +	basePal->palPalEntry[253].peFlags = PC_RESERVED; +	basePal->palPalEntry[254].peFlags = PC_RESERVED; + +	mTowerPalette = new CPalette; +	mTowerPalette->CreatePalette(basePal); + + +	mSEPalette = LoadACTPaletteEntries(instance, 102); +#line 31 +	_ASSERT(mSEPalette); + +	for (i = 0; i < (mNumOfSEKind * mNumOfSEColor); i++) +		mSEPalette->palPalEntry[i].peFlags = PC_RESERVED; + + +	mDayLightPalette = LoadACTPaletteEntries(instance, 101); +#line 36 +	_ASSERT(mDayLightPalette); + +	for (i = 0; i < (mNumOfRefrectColor + mNumOfSkyColor); i++) +		mDayLightPalette->palPalEntry[i].peFlags = PC_RESERVED; + + +	mUnknownPalette = LoadACTPaletteEntries(instance, 103); +#line 41 +	_ASSERT(mUnknownPalette); + +	gCommonColor[0] = 0; +	gCommonColor[1] = 255; +	for (i = 2; i <= 19; i++) { +		if ( +			mUnknownPalette->palPalEntry[i].peRed == 0 && +			mUnknownPalette->palPalEntry[i].peGreen == 0 && +			mUnknownPalette->palPalEntry[i].peBlue == 0 +		) +		{ +			gCommonColor[i] = 255; +		} +		else { +			for (j = 0; j < mNumOfTowerColor; j++) { +				if ( +					basePal->palPalEntry[j].peRed == mUnknownPalette->palPalEntry[i].peRed && +					basePal->palPalEntry[j].peGreen == mUnknownPalette->palPalEntry[i].peGreen && +					basePal->palPalEntry[j].peBlue == mUnknownPalette->palPalEntry[i].peBlue +				) +				{ +					break; +				} +			} + +#line 53 +			_ASSERT(j < mNumOfTowerColor); +			gCommonColor[i] = j; +		} +	} + +	free(basePal); +} + +T2PaletteAnimeDef::~T2PaletteAnimeDef() { +	delete mTowerPalette; +	free(mSEPalette); +	free(mDayLightPalette); +	free(mUnknownPalette); +} + +void T2PaletteAnimeDef::Init() { +	mUnknownPalette = NULL; +	mSEPalette = NULL; +	mDayLightPalette = NULL; +} + +void T2PaletteAnimeDef::ReplaceDayLightPalette(HINSTANCE instance, int id) { +	LOGPALETTE *pal = LoadACTPaletteEntries(instance, id); +#line 80 +	_ASSERT(pal); + +	for (int i = 0; i < (mNumOfRefrectColor + mNumOfSkyColor); i++) { +		pal->palPalEntry[i].peFlags = PC_RESERVED; +		mDayLightPalette->palPalEntry[i] = pal->palPalEntry[i]; +	} +} + +/*static*/ int T2PaletteAnimeDef::GetCommonColor(int i) { +	return gCommonColor[i]; +} diff --git a/src/T2DLL/T2PaletteAnimeDef.h b/src/T2DLL/T2PaletteAnimeDef.h new file mode 100644 index 0000000..981c872 --- /dev/null +++ b/src/T2DLL/T2PaletteAnimeDef.h @@ -0,0 +1,38 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2PaletteAnimeDef { +public: +	T2PaletteAnimeDef(HINSTANCE, CResFile*); +	~T2PaletteAnimeDef(); + +	void ReplaceDayLightPalette(HINSTANCE, int); +	static int GetCommonColor(int); + +	int GetNumOfAnimColor() const { return mNumOfAnimColor; } +	int GetAnimStartIndex() const { return mAnimStartIndex; } +	int GetNumOfRefrectColor() const { return mNumOfRefrectColor; } +	int GetNumOfSkyColor() const { return mNumOfSkyColor; } +	int GetNumOfSEKind() const { return mNumOfSEKind; } +	int GetNumOfSEColor() const { return mNumOfSEColor; } +	int GetSEInterval() const { return mSEInterval; } +	CPalette* GetTowerPalette() const { return mTowerPalette; } +	LOGPALETTE* GetDayLightPalette() const { return mDayLightPalette; } +	LOGPALETTE* GetSEPalette() const { return mSEPalette; } + +private: +	void Init(); + +	int mNumOfTowerColor; +	int mNumOfAnimColor; +	int mAnimStartIndex; +	int mNumOfRefrectColor; +	int mNumOfSkyColor; +	int mNumOfSEKind; +	int mNumOfSEColor; +	int mSEInterval; +	CPalette *mTowerPalette; +	LOGPALETTE *mDayLightPalette; +	LOGPALETTE *mSEPalette; +	LOGPALETTE *mUnknownPalette; +}; diff --git a/src/T2DLL/T2People.cpp b/src/T2DLL/T2People.cpp new file mode 100644 index 0000000..c434626 --- /dev/null +++ b/src/T2DLL/T2People.cpp @@ -0,0 +1,235 @@ +#include "T2People.h" + +T2People::T2People() { +} + +void T2People::Initialize() { +} + +/*virtual*/ T2People::~T2People() { +} + +/*virtual*/ void T2People::SetUsed(int) { +} + +void T2People::Initialize(T2PeopleDef*, T2PeopleType*) { +} + +int T2People::IsMale() const { +} + +int T2People::IsGeneral() const { +} + +int T2People::IsSpecialColor() const { +} + +void T2People::ChangeStyle(int) { +} + +int T2People::GetWidth() const { +} + +int T2People::GetRouteType() { +} + +int T2People::CalcWaitPersonArea(T2FloorInfo*, RECT&) { +} + +void T2People::CalcWalkingSilhouetteArea(RECT&) const { +} + +unsigned int T2People::GetCurTenantID() const { +} + +/*virtual*/ unsigned int T2People::Idle(T2TowerDoc*) { +} + +void T2People::IdleWaitMover(T2TowerDoc*) { +} + +void T2People::MoveToTowerEntrance(T2TowerDoc*) { +} + +void T2People::MoveToLobby(T2TowerDoc*) { +} + +int T2People::MoveToParking(T2TowerDoc*) { +} + +int T2People::MoveToSubway(T2TowerDoc*) { +} + +int T2People::MoveToShip(T2TowerDoc*) { +} + +void T2People::MoveByEStair(T2TowerDoc*) { +} + +void T2People::SolveNoRoute(T2TowerDoc*) { +} + +int T2People::FindRoute(T2TowerDoc*) { +} + +void T2People::JumpToDestination(T2TowerDoc*) { +} + +void T2People::GoOutTower(T2TowerDoc*) { +} + +void T2People::IdleSearchedPerson(T2TowerDoc*) { +} + +int T2People::WalkSearchedPersonRight(T2TowerDoc*) { +} + +int T2People::WalkSearchedPersonLeft(T2TowerDoc*) { +} + +int T2People::IsReachDestination(int) { +} + +int T2People::IsRegistRequest(T2TowerDoc*) { +} + +void T2People::ChangeStatus(int) { +} + +void T2People::ChangeSilhouette() { +} + +void T2People::SetSilhouette() { +} + +void T2People::ChangeWalkStyle(int) { +} + +void T2People::SetAnimePattern(int, int, int, int) { +} + +int T2People::StopOnHisWay(T2TenantMemberDef*, int, int, RECT, int, int, int, int) { +} + +int T2People::CalledInTenant(T2TenantMemberDef*, int, int, int, unsigned int, unsigned int) { +} + +int T2People::CalcFreeTime(unsigned int) { +} + +int T2People::IsGoToPool() const { +} + +void T2People::Return() { +} + +void T2People::SetDestinationToOutOfTower(T2TowerDoc*) { +} + +void T2People::ChangeDestination(unsigned int, unsigned int) { +} + +int T2People::CalcCurrEstimate() const { +} + +void T2People::IncEstimate(int) { +} + +void T2People::UpdateEstimation() { +} + +int T2People::GetAverageStress() const { +} + +int T2People::IncStress(int) { +} + +int T2People::StressChanged() { +} + +int T2People::IsVIP() const { +} + +int T2People::IsNamed() const { +} + +void T2People::SetColor(int) { +} + +void T2People::ClearColor() { +} + +/*virtual*/ void T2People::SetFavorite(int) { +} + +int T2People::VIPEstimation() { +} + +int T2People::SearchToilet(T2TowerDoc*) { +} + +void T2People::DrawSearchedPerson(T2TowerDoc*) { +} + +/*virtual*/ void T2People::Draw(T2TowerDoc*, const RECT&) { +} + +void T2People::Draw(T2BitImage*, const RECT&) { +} + +void T2People::Draw(T2TowerDoc*, T2Equip*) { +} + +void T2People::DrawAt(T2TowerDoc*, T2Equip*, POINT) { +} + +void T2People::Duplicate(T2TowerDoc*) { +} + +void T2People::Remove(T2TowerDoc*, unsigned int) { +} + +void T2People::TenantRemoved(unsigned int) { +} + +void T2People::Interview(T2TowerDoc*) { +} + +int T2People::GetInterviewWords(T2TowerDoc*, CString&) { +} + +int T2People::IsMaru() const { +} + +int T2People::IsReggae() const { +} + +void T2People::BreakoutEmergency(T2TowerDoc*) { +} + +/*virtual*/ void T2People::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2People::SaveSelf(T2Archive&) { +} + +void T2People::ResolveLink(T2PeopleArrayList*) { +} + +/*virtual*/ T2InfoDialog* T2People::ShowInfoDialog(T2TowerDoc*) { +} + +void T2People::GetName(CString&) { +} + +/*virtual*/ int T2People::GetSilhouetteRect(RECT&) { +} + +/*virtual*/ void T2People::DrawHitMask(T2TowerDoc*) { +} + +void T2People::ClearSpecialFlag(unsigned int) { +} + +void T2People::SetSpecialFlag(unsigned int) { +} diff --git a/src/T2DLL/T2People.h b/src/T2DLL/T2People.h new file mode 100644 index 0000000..f02058b --- /dev/null +++ b/src/T2DLL/T2People.h @@ -0,0 +1,122 @@ +#pragma once +#include "common.h" + +class T2People { +public: +	T2People(); +private: +	void Initialize(); +public: +	virtual ~T2People(); +	virtual void SetUsed(int); +	void Initialize(T2PeopleDef*, T2PeopleType*); +	int IsMale() const; +	int IsGeneral() const; +	int IsSpecialColor() const; +	void ChangeStyle(int); +	int GetWidth() const; +	int GetRouteType(); +	int CalcWaitPersonArea(T2FloorInfo*, RECT&); +	void CalcWalkingSilhouetteArea(RECT&) const; +	unsigned int GetCurTenantID() const; +	virtual unsigned int Idle(T2TowerDoc*); +protected: +	void IdleWaitMover(T2TowerDoc*); +	void MoveToTowerEntrance(T2TowerDoc*); +	void MoveToLobby(T2TowerDoc*); +	int MoveToParking(T2TowerDoc*); +	int MoveToSubway(T2TowerDoc*); +	int MoveToShip(T2TowerDoc*); +	void MoveByEStair(T2TowerDoc*); +	void SolveNoRoute(T2TowerDoc*); +	int FindRoute(T2TowerDoc*); +	void JumpToDestination(T2TowerDoc*); +public: +	void GoOutTower(T2TowerDoc*); +	void IdleSearchedPerson(T2TowerDoc*); +protected: +	int WalkSearchedPersonRight(T2TowerDoc*); +	int WalkSearchedPersonLeft(T2TowerDoc*); +	int IsReachDestination(int); +	int IsRegistRequest(T2TowerDoc*); +public: +	void ChangeStatus(int); +protected: +	void ChangeSilhouette(); +	void SetSilhouette(); +public: +	void ChangeWalkStyle(int); +	void SetAnimePattern(int, int, int, int); +	int StopOnHisWay(T2TenantMemberDef*, int, int, RECT, int, int, int, int); +	int CalledInTenant(T2TenantMemberDef*, int, int, int, unsigned int, unsigned int); +protected: +	int CalcFreeTime(unsigned int); +public: +	int IsGoToPool() const; +	void Return(); +	void SetDestinationToOutOfTower(T2TowerDoc*); +	void ChangeDestination(unsigned int, unsigned int); +	int CalcCurrEstimate() const; +	void IncEstimate(int); +	void UpdateEstimation(); +	int GetAverageStress() const; +	int IncStress(int); +protected: +	int StressChanged(); +public: +	int IsVIP() const; +	int IsNamed() const; +	void SetColor(int); +	void ClearColor(); +	virtual void SetFavorite(int); +	int VIPEstimation(); +	int SearchToilet(T2TowerDoc*); +	void DrawSearchedPerson(T2TowerDoc*); +	virtual void Draw(T2TowerDoc*, const RECT&); +	void Draw(T2BitImage*, const RECT&); +	void Draw(T2TowerDoc*, T2Equip*); +	void DrawAt(T2TowerDoc*, T2Equip*, POINT); +	void Duplicate(T2TowerDoc*); +	void Remove(T2TowerDoc*, unsigned int); +	void TenantRemoved(unsigned int); +	void Interview(T2TowerDoc*); +	int GetInterviewWords(T2TowerDoc*, CString&); +	int IsMaru() const; +	int IsReggae() const; +	void BreakoutEmergency(T2TowerDoc*); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); +public: +	void ResolveLink(T2PeopleArrayList*); +	virtual T2InfoDialog* ShowInfoDialog(T2TowerDoc*); +	void GetName(CString&); +	virtual int GetSilhouetteRect(RECT&); +	virtual void DrawHitMask(T2TowerDoc*); +	void ClearSpecialFlag(unsigned int); +	void SetSpecialFlag(unsigned int); + +	unsigned int GetPeopleID() { return 0; } +	T2PeopleType* GetPeopleType() const { return 0; } +	unsigned int GetEconoType() { return 0; } +	int IsFatSilhouette() const { return 0; } +	int IsInTower() const { return 0; } +	int GetColor() const { return 0; } +	int IsSetSpecialFlag(unsigned int) const { return 0; } +	void SetToSleep() {} +	int IsSleep() const { return 0; } +	int IsWalk() const { return 0; } +	void SetWalk(int) {} +	void SetFiller(int) {} +	void SetStyle(int) {} +	int GetStyle() const { return 0; } +	void SetSilhouetteDef(int, T2SilhouetteDef*) {} +	void SetPeopleType(T2PeopleType*) {} +	void SetPrevTenantType(int) {} +	int GetPrevTenantType() const { return 0; } +	void InitStress() {} +	int GetStress() const { return 0; } +	int GetEstimate() const { return 0; } +	unsigned int GetAge() const { return 0; } +	unsigned int GetSex() const { return 0; } +}; diff --git a/src/T2DLL/T2PeopleAnimeDef.cpp b/src/T2DLL/T2PeopleAnimeDef.cpp new file mode 100644 index 0000000..59e8ace --- /dev/null +++ b/src/T2DLL/T2PeopleAnimeDef.cpp @@ -0,0 +1,25 @@ +#include "T2PeopleAnimeDef.h" + +T2PeopleAnimeDef::T2PeopleAnimeDef(CResFile&) { +} + +void T2PeopleAnimeDef::Init() { +} + +/*virtual*/ T2PeopleAnimeDef::~T2PeopleAnimeDef() { +} + +void T2PeopleAnimeDef::Set(T2People*, int, int) { +} + +T2PeopleAnimeDefElem::T2PeopleAnimeDefElem() { +} + +/*virtual*/ T2PeopleAnimeDefElem::~T2PeopleAnimeDefElem() { +} + +void T2PeopleAnimeDefElem::Initialize(CResFile&) { +} + +void T2PeopleAnimeDefElem::Set(T2People*, int) { +} diff --git a/src/T2DLL/T2PeopleAnimeDef.h b/src/T2DLL/T2PeopleAnimeDef.h new file mode 100644 index 0000000..e3c98ad --- /dev/null +++ b/src/T2DLL/T2PeopleAnimeDef.h @@ -0,0 +1,25 @@ +#pragma once +#include "common.h" + +class T2PeopleAnimeDef { +public: +	T2PeopleAnimeDef(CResFile&); +private: +	void Init(); +public: +	virtual ~T2PeopleAnimeDef(); +	void Set(T2People*, int, int); + +	T2PeopleAnimeDef(const T2PeopleAnimeDef&) {} +	T2PeopleAnimeDef& operator=(const T2PeopleAnimeDef&) {} +}; +class T2PeopleAnimeDefElem { +public: +	T2PeopleAnimeDefElem(); +	virtual ~T2PeopleAnimeDefElem(); +	void Initialize(CResFile&); +	void Set(T2People*, int); + +	T2PeopleAnimeDefElem(const T2PeopleAnimeDefElem&) {} +	T2PeopleAnimeDefElem& operator=(const T2PeopleAnimeDefElem&) {} +}; diff --git a/src/T2DLL/T2PeopleArray.cpp b/src/T2DLL/T2PeopleArray.cpp new file mode 100644 index 0000000..53a56e9 --- /dev/null +++ b/src/T2DLL/T2PeopleArray.cpp @@ -0,0 +1,40 @@ +#include "T2PeopleArray.h" + +T2PeopleArray::T2PeopleArray(unsigned int) { +} + +T2People* T2PeopleArray::FindPeople(unsigned int) { +} + +void T2PeopleArray::ResolveLink(T2PeopleArrayList*) { +} + +T2People* T2PeopleArray::FindUnusedPeople() { +} + +/*virtual*/ void T2PeopleArray::DispatchIdle(T2TowerDoc*, int) { +} + +void T2PeopleArray::DrawSearchedPerson(T2TowerDoc*) { +} + +void T2PeopleArray::SetWalkPeople(int) { +} + +void T2PeopleArray::DayChanged() { +} + +void T2PeopleArray::TenantRemoved(unsigned int) { +} + +void T2PeopleArray::AddStress(int) { +} + +void T2PeopleArray::BreakoutEmergency(T2TowerDoc*) { +} + +void T2PeopleArray::Read(T2Archive&, T2TowerDoc*) { +} + +void T2PeopleArray::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2PeopleArray.h b/src/T2DLL/T2PeopleArray.h new file mode 100644 index 0000000..3e1521c --- /dev/null +++ b/src/T2DLL/T2PeopleArray.h @@ -0,0 +1,25 @@ +#pragma once +#include "common.h" + +class T2PeopleArray { +public: +	T2PeopleArray(unsigned int); +	T2People* FindPeople(unsigned int); +	void ResolveLink(T2PeopleArrayList*); +	T2People* FindUnusedPeople(); +	virtual void DispatchIdle(T2TowerDoc*, int); +	void DrawSearchedPerson(T2TowerDoc*); +	void SetWalkPeople(int); +	void DayChanged(); +	void TenantRemoved(unsigned int); +	void AddStress(int); +	void BreakoutEmergency(T2TowerDoc*); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	virtual ~T2PeopleArray() {} +	T2People* GetIndexPeople(int) {} +	T2PeopleArray(const T2PeopleArray&) {} +	T2PeopleArray& operator=(const T2PeopleArray&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2PeopleArrayList.cpp b/src/T2DLL/T2PeopleArrayList.cpp new file mode 100644 index 0000000..19db7d8 --- /dev/null +++ b/src/T2DLL/T2PeopleArrayList.cpp @@ -0,0 +1,46 @@ +#include "T2PeopleArrayList.h" + +T2PeopleArrayList::T2PeopleArrayList() { +} + +/*virtual*/ T2PeopleArrayList::~T2PeopleArrayList() { +} + +void T2PeopleArrayList::Add(T2PeopleArray*) { +} + +unsigned int T2PeopleArrayList::GetItemCount() { +} + +T2PeopleArray* T2PeopleArrayList::GetItemAt(int) { +} + +T2People* T2PeopleArrayList::FindPeople(unsigned int) { +} + +T2People* T2PeopleArrayList::FindUnusedPeople() { +} + +void T2PeopleArrayList::DispatchIdle(T2TowerDoc*) { +} + +void T2PeopleArrayList::DrawSearchedPerson(T2TowerDoc*) { +} + +void T2PeopleArrayList::SetWalkPeople(int) { +} + +void T2PeopleArrayList::TenantRemoved(unsigned int) { +} + +void T2PeopleArrayList::AddStress(int) { +} + +void T2PeopleArrayList::Read(T2Archive&, T2TowerDoc*) { +} + +void T2PeopleArrayList::Write(T2Archive&) { +} + +void T2PeopleArrayList::BreakoutEmergency(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2PeopleArrayList.h b/src/T2DLL/T2PeopleArrayList.h new file mode 100644 index 0000000..60c059c --- /dev/null +++ b/src/T2DLL/T2PeopleArrayList.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2PeopleArrayList { +public: +	T2PeopleArrayList(); +	virtual ~T2PeopleArrayList(); +	void Add(T2PeopleArray*); +	unsigned int GetItemCount(); +	T2PeopleArray* GetItemAt(int); +	T2People* FindPeople(unsigned int); +	T2People* FindUnusedPeople(); +	void DispatchIdle(T2TowerDoc*); +	void DrawSearchedPerson(T2TowerDoc*); +	void SetWalkPeople(int); +	void TenantRemoved(unsigned int); +	void AddStress(int); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); +	void BreakoutEmergency(T2TowerDoc*); + +	T2PeopleArrayList(const T2PeopleArrayList&) {} +	T2PeopleArrayList& operator=(const T2PeopleArrayList&) {} +}; diff --git a/src/T2DLL/T2PeopleDef.cpp b/src/T2DLL/T2PeopleDef.cpp new file mode 100644 index 0000000..1c07737 --- /dev/null +++ b/src/T2DLL/T2PeopleDef.cpp @@ -0,0 +1,10 @@ +#include "T2PeopleDef.h" + +T2PeopleDef::T2PeopleDef(unsigned long, T2PluginSpecifier&, CResFile*) { +} + +/*virtual*/ T2PeopleDef::~T2PeopleDef() { +} + +/*virtual*/ void T2PeopleDef::GetName(CString&) { +} diff --git a/src/T2DLL/T2PeopleDef.h b/src/T2DLL/T2PeopleDef.h new file mode 100644 index 0000000..8f32c2c --- /dev/null +++ b/src/T2DLL/T2PeopleDef.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2PeopleDef { +public: +	T2PeopleDef(unsigned long, T2PluginSpecifier&, CResFile*); +	virtual ~T2PeopleDef(); +	virtual void GetName(CString&); + +	int GetPeopleType() {} +	int GetStressMax() {} +	int GetStressBlueLimit() {} +	int GetStressYellowLimit() {} +	T2PeopleDef& operator=(T2PeopleDef&) {} +}; diff --git a/src/T2DLL/T2PeopleDemandList.cpp b/src/T2DLL/T2PeopleDemandList.cpp new file mode 100644 index 0000000..06e943c --- /dev/null +++ b/src/T2DLL/T2PeopleDemandList.cpp @@ -0,0 +1,40 @@ +#include "T2PeopleDemandList.h" + +T2PeopleDemandList::T2PeopleDemandList(T2PoolDef*, T2SeasonParamDef*, T2WorldDef*) { +} + +T2PeopleDemandList::T2PeopleDemandList(T2Archive&, T2SeasonParamDef*, T2WorldDef*) { +} + +/*virtual*/ T2PeopleDemandList::~T2PeopleDemandList() { +} + +void T2PeopleDemandList::Add(T2PeopleTimeZoneList*) { +} + +void T2PeopleDemandList::Add(T2PoolGradeDef*) { +} + +void T2PeopleDemandList::Init(unsigned int, unsigned int) { +} + +void T2PeopleDemandList::IncHour(unsigned int) { +} + +T2PeopleTimeZoneList* T2PeopleDemandList::GetItem(int) const { +} + +int T2PeopleDemandList::Find(T2TenantMemberDef*, int, unsigned int, int) const { +} + +int T2PeopleDemandList::Call(T2TenantMemberDef*, int, unsigned int, T2PeopleType&) const { +} + +void T2PeopleDemandList::DispatchRestore(T2PeopleType&) { +} + +void T2PeopleDemandList::DispatchAdd(T2PeopleType*) { +} + +void T2PeopleDemandList::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2PeopleDemandList.h b/src/T2DLL/T2PeopleDemandList.h new file mode 100644 index 0000000..1e4ceef --- /dev/null +++ b/src/T2DLL/T2PeopleDemandList.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" + +class T2PeopleDemandList { +public: +	T2PeopleDemandList(T2PoolDef*, T2SeasonParamDef*, T2WorldDef*); +	T2PeopleDemandList(T2Archive&, T2SeasonParamDef*, T2WorldDef*); +	virtual ~T2PeopleDemandList(); +protected: +	void Add(T2PeopleTimeZoneList*); +public: +	void Add(T2PoolGradeDef*); +	void Init(unsigned int, unsigned int); +	void IncHour(unsigned int); +protected: +	T2PeopleTimeZoneList* GetItem(int) const; +public: +	int Find(T2TenantMemberDef*, int, unsigned int, int) const; +	int Call(T2TenantMemberDef*, int, unsigned int, T2PeopleType&) const; +	void DispatchRestore(T2PeopleType&); +	void DispatchAdd(T2PeopleType*); +	void Write(T2Archive&); + +	T2PeopleDemandList(const T2PeopleDemandList&) {} +	T2PeopleDemandList& operator=(const T2PeopleDemandList&) {} +}; diff --git a/src/T2DLL/T2PeopleInfoDialog.cpp b/src/T2DLL/T2PeopleInfoDialog.cpp new file mode 100644 index 0000000..1593309 --- /dev/null +++ b/src/T2DLL/T2PeopleInfoDialog.cpp @@ -0,0 +1,28 @@ +#include "T2PeopleInfoDialog.h" + +T2PeopleInfoDialog::T2PeopleInfoDialog(T2People*) { +} + +/*virtual*/ T2PeopleInfoDialog::~T2PeopleInfoDialog() { +} + +/*virtual*/ void T2PeopleInfoDialog::OnT2Create() { +} + +CString T2PeopleInfoDialog::GetTenantName(T2TowerDoc*, unsigned int) { +} + +/*virtual*/ void T2PeopleInfoDialog::CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&) { +} + +/*virtual*/ void T2PeopleInfoDialog::OnT2Destroy() { +} + +/*virtual*/ int T2PeopleInfoDialog::OnT2DialogCommand(unsigned int, long) { +} + +/*virtual*/ int T2PeopleInfoDialog::OnT2EraseBkgnd(CDC*) { +} + +/*virtual*/ void T2PeopleInfoDialog::OnT2OK() { +} diff --git a/src/T2DLL/T2PeopleInfoDialog.h b/src/T2DLL/T2PeopleInfoDialog.h new file mode 100644 index 0000000..cd970bf --- /dev/null +++ b/src/T2DLL/T2PeopleInfoDialog.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2PeopleInfoDialog { +public: +	T2PeopleInfoDialog(T2People*); +	virtual ~T2PeopleInfoDialog(); +protected: +	virtual void OnT2Create(); +	CString GetTenantName(T2TowerDoc*, unsigned int); +	virtual void CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&); +	virtual void OnT2Destroy(); +	virtual int OnT2DialogCommand(unsigned int, long); +	virtual int OnT2EraseBkgnd(CDC*); +	virtual void OnT2OK(); +}; diff --git a/src/T2DLL/T2PeopleLinkIterator.cpp b/src/T2DLL/T2PeopleLinkIterator.cpp new file mode 100644 index 0000000..96ad5d8 --- /dev/null +++ b/src/T2DLL/T2PeopleLinkIterator.cpp @@ -0,0 +1,28 @@ +#include "T2PeopleLinkIterator.h" + +T2PeopleLinkIterator::T2PeopleLinkIterator(T2People* people) +	: mFirst(people) +	, mCurrent(people) +{ +} + +/*virtual*/ T2PeopleLinkIterator::~T2PeopleLinkIterator() { +} + +int T2PeopleLinkIterator::Current(T2People** pPeople) { +	if (mCurrent) { +		*pPeople = mCurrent; +		return true; +	} +	return false; +} + +int T2PeopleLinkIterator::Prev(T2People** pPeople) { +	// TODO once T2Matter, T2People is done +} + +int T2PeopleLinkIterator::Next(T2People** pPeople) { +} + +void T2PeopleLinkIterator::Reset() { +} diff --git a/src/T2DLL/T2PeopleLinkIterator.h b/src/T2DLL/T2PeopleLinkIterator.h new file mode 100644 index 0000000..e6b15a5 --- /dev/null +++ b/src/T2DLL/T2PeopleLinkIterator.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2PeopleLinkIterator { +public: +	T2PeopleLinkIterator(T2People*); +	virtual ~T2PeopleLinkIterator(); +	int Current(T2People**); +	int Prev(T2People**); +	int Next(T2People**); +	void Reset(); + +protected: +	T2People *mFirst; +	T2People *mCurrent; +}; diff --git a/src/T2DLL/T2PeopleLoader.cpp b/src/T2DLL/T2PeopleLoader.cpp new file mode 100644 index 0000000..3552889 --- /dev/null +++ b/src/T2DLL/T2PeopleLoader.cpp @@ -0,0 +1,13 @@ +#include "T2PeopleLoader.h" + +/*static*/ void T2PeopleLoader::Load(T2PluginSpecifier*, T2TemplatePluginDB*) { +} + +/*static*/ void T2PeopleLoader::Unload(T2TemplatePluginDB*) { +} + +/*static*/ int T2PeopleLoader::LoadSilhouette(T2PluginSpecifier*, T2TemplatePluginDB*) { +} + +/*static*/ int T2PeopleLoader::LoadPeople(T2PluginSpecifier*, T2TemplatePluginDB*) { +} diff --git a/src/T2DLL/T2PeopleLoader.h b/src/T2DLL/T2PeopleLoader.h new file mode 100644 index 0000000..f96a8f0 --- /dev/null +++ b/src/T2DLL/T2PeopleLoader.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2PeopleLoader { +public: +	static void Load(T2PluginSpecifier*, T2TemplatePluginDB*); +	static void Unload(T2TemplatePluginDB*); +protected: +	static int LoadSilhouette(T2PluginSpecifier*, T2TemplatePluginDB*); +	static int LoadPeople(T2PluginSpecifier*, T2TemplatePluginDB*); + +public: +	T2PeopleLoader& operator=(const T2PeopleLoader&) {} +}; diff --git a/src/T2DLL/T2PeoplePtrList.cpp b/src/T2DLL/T2PeoplePtrList.cpp new file mode 100644 index 0000000..cffd0fb --- /dev/null +++ b/src/T2DLL/T2PeoplePtrList.cpp @@ -0,0 +1,52 @@ +#include "T2PeoplePtrList.h" + +T2PeoplePtrList::T2PeoplePtrList(int) { +} + +/*virtual*/ T2PeoplePtrList::~T2PeoplePtrList() { +} + +void T2PeoplePtrList::Init(unsigned int) { +} + +int T2PeoplePtrList::Add(T2People*) { +} + +T2People* T2PeoplePtrList::GetItemAt(int) const { +} + +int T2PeoplePtrList::GetPeopleIndex(T2People*, int&) const { +} + +int T2PeoplePtrList::HasSpace() const { +} + +void T2PeoplePtrList::Clear() { +} + +void T2PeoplePtrList::Clear(T2People*) { +} + +void T2PeoplePtrList::SetDestination(unsigned int) { +} + +void T2PeoplePtrList::ChangeDestination(unsigned int) { +} + +void T2PeoplePtrList::SetReturn(unsigned int) { +} + +void T2PeoplePtrList::IncStress(int) { +} + +void T2PeoplePtrList::IncEstimate(int) { +} + +int T2PeoplePtrList::InSameTenant(unsigned int) const { +} + +void T2PeoplePtrList::LoadSelf(T2Archive&, T2PeopleArrayList*) { +} + +void T2PeoplePtrList::SaveSelf(T2Archive&) const { +} diff --git a/src/T2DLL/T2PeoplePtrList.h b/src/T2DLL/T2PeoplePtrList.h new file mode 100644 index 0000000..8738224 --- /dev/null +++ b/src/T2DLL/T2PeoplePtrList.h @@ -0,0 +1,29 @@ +#pragma once +#include "common.h" + +class T2PeoplePtrList { +public: +	T2PeoplePtrList(int); +	virtual ~T2PeoplePtrList(); +protected: +	void Init(unsigned int); +public: +	int Add(T2People*); +	T2People* GetItemAt(int) const; +	int GetPeopleIndex(T2People*, int&) const; +	int HasSpace() const; +	void Clear(); +	void Clear(T2People*); +	void SetDestination(unsigned int); +	void ChangeDestination(unsigned int); +	void SetReturn(unsigned int); +	void IncStress(int); +	void IncEstimate(int); +	int InSameTenant(unsigned int) const; +	void LoadSelf(T2Archive&, T2PeopleArrayList*); +	void SaveSelf(T2Archive&) const; + +	T2PeoplePtrList(const T2PeoplePtrList&) {} +	T2PeoplePtrList& operator=(const T2PeoplePtrList&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2PeopleTimeZoneList.cpp b/src/T2DLL/T2PeopleTimeZoneList.cpp new file mode 100644 index 0000000..8cb68ee --- /dev/null +++ b/src/T2DLL/T2PeopleTimeZoneList.cpp @@ -0,0 +1,43 @@ +#include "T2PeopleTimeZoneList.h" + +T2PeopleTimeZoneList::T2PeopleTimeZoneList(unsigned int, unsigned int, T2WorldDef*) { +} + +T2PeopleTimeZoneList::T2PeopleTimeZoneList(T2Archive&, T2WorldDef*) { +} + +/*virtual*/ T2PeopleTimeZoneList::~T2PeopleTimeZoneList() { +} + +void T2PeopleTimeZoneList::Add(T2PeopleTypeArray*) { +} + +void T2PeopleTimeZoneList::Add(T2PeopleType*, T2PoolDefDemandElem*) { +} + +void T2PeopleTimeZoneList::Init(unsigned int, float) { +} + +void T2PeopleTimeZoneList::IncHour(float) { +} + +T2PeopleTypeArray* T2PeopleTimeZoneList::GetItem(int) const { +} + +T2PeopleTypeArray* T2PeopleTimeZoneList::CurrentItem() const { +} + +int T2PeopleTimeZoneList::Find(T2TenantMemberDef*, int, unsigned int, int) const { +} + +int T2PeopleTimeZoneList::Call(T2TenantMemberDef*, int, unsigned int, T2PeopleType&) { +} + +void T2PeopleTimeZoneList::DispatchRestore(T2PeopleType&) { +} + +void T2PeopleTimeZoneList::DispatchAdd(T2PeopleType*) { +} + +void T2PeopleTimeZoneList::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2PeopleTimeZoneList.h b/src/T2DLL/T2PeopleTimeZoneList.h new file mode 100644 index 0000000..918471b --- /dev/null +++ b/src/T2DLL/T2PeopleTimeZoneList.h @@ -0,0 +1,30 @@ +#pragma once +#include "common.h" + +class T2PeopleTimeZoneList { +public: +	T2PeopleTimeZoneList(unsigned int, unsigned int, T2WorldDef*); +	T2PeopleTimeZoneList(T2Archive&, T2WorldDef*); +	virtual ~T2PeopleTimeZoneList(); +protected: +	void Add(T2PeopleTypeArray*); +public: +	void Add(T2PeopleType*, T2PoolDefDemandElem*); +	void Init(unsigned int, float); +	void IncHour(float); +protected: +	T2PeopleTypeArray* GetItem(int) const; +	T2PeopleTypeArray* CurrentItem() const; +public: +	int Find(T2TenantMemberDef*, int, unsigned int, int) const; +	int Call(T2TenantMemberDef*, int, unsigned int, T2PeopleType&); +	void DispatchRestore(T2PeopleType&); +	void DispatchAdd(T2PeopleType*); +	void Write(T2Archive&); + +	T2PeopleTimeZoneList(const T2PeopleTimeZoneList&) {} +	T2PeopleTimeZoneList& operator=(const T2PeopleTimeZoneList&) {} +	int IsFixed() const {} +protected: +	int GetNumOfTimeZone() const {} +}; diff --git a/src/T2DLL/T2PeopleType.cpp b/src/T2DLL/T2PeopleType.cpp new file mode 100644 index 0000000..bf456c4 --- /dev/null +++ b/src/T2DLL/T2PeopleType.cpp @@ -0,0 +1,160 @@ +#include "T2Archive.h" +#include "T2PeopleType.h" +#include "T2TenantMemberDef.h" +#include "UT2Utils.h" + +T2PeopleType::T2PeopleType() { +	mAttribute = 0; +	mSilhouetteType = 0; +	mEconoType = 0; +	mTransportType = 0; +	mLife = 0; +} + +T2PeopleType::~T2PeopleType() { +} + +void T2PeopleType::SetDemandType(int v) { +	mAttribute &= 0xF8; +	mAttribute |= (v & 7); +} + +void T2PeopleType::SetTimeZoneType(int v) { +	mAttribute &= 7; +	mAttribute |= ((v << 3) & 0xF8); +} + +int T2PeopleType::GetDemandType() const { +	return mAttribute & 7; +} + +int T2PeopleType::GetTimeZoneType() const { +	return (mAttribute & 0xF8) >> 3; +} + +void T2PeopleType::RecoverLife() { +	if (!IsImmortal()) +		mLife = 12; +} + +void T2PeopleType::Duplicate(T2PeopleType& dest) const { +	dest = *this; +	dest.mLife = 1; + +	int econoType = mEconoType + UT2Utils::Randomize(3) - 1; +	if (econoType <= 0) +		econoType = 1; +	else if (econoType >= 7) +		econoType = 6; +	dest.mEconoType = econoType; +} + +int T2PeopleType::Check(T2TenantMemberDef* def, int var, unsigned int flags) const { +	int result = (flags & (1 << mTransportType)) != 0; + +	if (result) +		result = CheckSilhouetteType(def); +	if (result) +		result = CheckSilhouetteOptionType(def->GetOptionType()); +	if (result && var > -1) { +		if (mEconoType < var || mEconoType >= (var + 3)) +			result = false; +	} + +	return result; +} + +int T2PeopleType::CheckWithDemand(T2TenantMemberDef* def, int var) const { +	return (CheckDemandType(def->GetDemandType()) && Check(def, var, 0xFF)); +} + +int T2PeopleType::CheckDemandType(int demandType) const { +	int result = true; + +	if (demandType != -1 && GetDemandType() != demandType) +		result = false; + +	return result; +} + +int T2PeopleType::CheckSilhouetteType(T2TenantMemberDef* def) const { +	int result = true; +	int start = def->GetStartSilhouetteType(); + +	if (start < -1) { +		switch (start) { +			case -3: +				if (mSilhouetteType < 8 || mSilhouetteType >= 16) +					result = false; +				break; +			case -4: +				if (mSilhouetteType < 16 || mSilhouetteType >= 24) +					result = false; +				break; +			case -5: +				if (mSilhouetteType < 24 || mSilhouetteType >= 56) +					result = false; +				break; +			case -6: +				if (mSilhouetteType < 30 || mSilhouetteType >= 51) +					result = false; +				break; +		} +	} else if (start > -1) { +		if (mSilhouetteType < start) { +			result = false; +		} else { +			int end = def->GetEndSilhouetteType(); +			if (mSilhouetteType > end) +				result = false; +		} +	} + +	return result; +} + +int T2PeopleType::CheckSilhouetteOptionType(int var) const { +	int result = true; + +	if (var > -1) { +		if (var & 1) { +			if ((mSilhouetteType % 2) != 0) +				result = false; +		} else if (var & 2) { +			if ((mSilhouetteType % 2) == 0) +				result = false; +		} + +		if (var & 4) { +			if (((mSilhouetteType / 4) % 2) != 0) +				result = false; +		} else if (var & 8) { +			if (((mSilhouetteType / 4) % 2) == 0) +				result = false; +		} +	} + +	return result; +} + +void T2PeopleType::Read(T2Archive& archive) { +	char v; +	archive >> v; +	mAttribute = v; +	archive >> v; +	mSilhouetteType = v; +	archive >> v; +	mEconoType = v; +	archive >> v; +	mTransportType = v; +	archive >> v; +	mLife = v; +} + +void T2PeopleType::Write(T2Archive& archive) { +	archive << (char) mAttribute; +	archive << (char) mSilhouetteType; +	archive << (char) mEconoType; +	archive << (char) mTransportType; +	archive << (char) mLife; +} diff --git a/src/T2DLL/T2PeopleType.h b/src/T2DLL/T2PeopleType.h new file mode 100644 index 0000000..cc3f7ee --- /dev/null +++ b/src/T2DLL/T2PeopleType.h @@ -0,0 +1,53 @@ +#pragma once +#include "common.h" + +class T2PeopleType { +public: +	T2PeopleType(); +	~T2PeopleType(); +	void SetDemandType(int); +	void SetTimeZoneType(int); +	int GetDemandType() const; +	int GetTimeZoneType() const; +	void RecoverLife(); +	void Duplicate(T2PeopleType&) const; +	int Check(T2TenantMemberDef*, int, unsigned int) const; +	int CheckWithDemand(T2TenantMemberDef*, int) const; +	void Read(T2Archive&); +	void Write(T2Archive&); + +	void SetSilhouetteType(int v) { mSilhouetteType = v; } +	void SetEconoType(int v) { mEconoType = v; } +	void SetTransportType(int v) { mTransportType = v; } +	void SetLifeCount(int v) { mLife = v; } +	int GetSilhouetteType() const { return mSilhouetteType; } +	int GetTransportType() const { return mTransportType; } +	int GetAge() const { +		return mSilhouetteType / 8; +	} +	int IsMale() const { +		return (mSilhouetteType % 2) == 0; +	} +	int IsImmortal() const { +		return (mLife == 127); +	} +	int HasLife() const { +		return (mLife > 0); +	} +	void DecreaseLife() { +		if (!IsImmortal()) +			mLife--; +	} +	int GetEconoType() const { return mEconoType; } + +protected: +	int CheckDemandType(int) const; +	int CheckSilhouetteType(T2TenantMemberDef*) const; +	int CheckSilhouetteOptionType(int) const; + +	unsigned int mAttribute; +	int mSilhouetteType; +	int mEconoType; +	int mLife; +	int mTransportType; +}; diff --git a/src/T2DLL/T2PeopleTypeArray.cpp b/src/T2DLL/T2PeopleTypeArray.cpp new file mode 100644 index 0000000..c05769c --- /dev/null +++ b/src/T2DLL/T2PeopleTypeArray.cpp @@ -0,0 +1,154 @@ +#include "T2Archive.h" +#include "T2PeopleType.h" +#include "T2PeopleTypeArray.h" +#include "T2PoolDef.h" +#include "T2TenantMemberDef.h" + +T2PeopleTypeArray::T2PeopleTypeArray(unsigned int val) +	: LArray(sizeof(T2PeopleType)) +{ +	m24 = val; +	m20 = 0; +	InitSearchLimit(1.0f); +} + +T2PeopleTypeArray::T2PeopleTypeArray(T2Archive& archive) +	: LArray(sizeof(T2PeopleType)) +{ +	m20 = 0; +	Read(archive); +} + +/*virtual*/ T2PeopleTypeArray::~T2PeopleTypeArray() { +} + +void T2PeopleTypeArray::Add(T2PeopleType* type, unsigned int count, int where) { +	if (where == 0) { +		for (unsigned int i = 0; i < count; i++) +			LArray::Add(type); +	} else { +		InsertItemsAt(count, where, type); +	} +} + +void T2PeopleTypeArray::Add(T2PeopleType* type, T2PoolTimeZoneDef* timeZoneDef, unsigned int count) { +	for (unsigned int i = 0; i < count; i++) { +		unsigned int numOfElems = timeZoneDef->GetNumOfElems(); +		for (unsigned int j = 0; j < numOfElems; j++) { +			PeopleElem *peopleElem = timeZoneDef->GetPeopleElem(j); +#line 49 +			_ASSERT(peopleElem); + +			type->SetSilhouetteType(peopleElem->mSilhouetteType); +			type->SetEconoType(peopleElem->mEconoType); +			type->SetTransportType(peopleElem->mTransportType); +			type->SetLifeCount(127); +			Add(type, peopleElem->m4, 1); +		} +	} +} + +void T2PeopleTypeArray::AdjustLife() { +	for (int i = m2C; i >= m28; i--) { +		T2PeopleType peopleType; +		if (FetchItemAt(i, &peopleType)) { +			peopleType.DecreaseLife(); +			if (peopleType.HasLife()) +				AssignItemsAt(1, i, &peopleType); +			else +				RemoveItemsAt(1, i); +		} +	} +} + +void T2PeopleTypeArray::InitSearchLimit(float limit) { +	m28 = 1; +	m2C = GetCount(); +	if (m24 == 0) +		m2C = m2C * limit; +} + +int T2PeopleTypeArray::Find(T2TenantMemberDef* tenantMemberDef, int a, unsigned int b, int c) const { +	int result = false; +	T2PeopleType peopleType; + +	int numOfPeople = tenantMemberDef->GetNumOfPeople(); +	int xxx = 0; +	int yyy = a; + +	if (numOfPeople > 1 && m24 != 0) +		numOfPeople = 1; + +	for (int i = m28; !result && i <= m2C; i++) { +		if (FetchItemAt(i, &peopleType)) { +			if (peopleType.Check(tenantMemberDef, yyy, b)) { +				xxx++; +				if (xxx >= numOfPeople) { +					result = true; +				} else if (xxx == 1 && c) { +					yyy = -1; +				} +			} +		} +	} + +	return result; +} + +int T2PeopleTypeArray::Call(T2TenantMemberDef* tenantMemberDef, int a, unsigned int b, T2PeopleType& outPeopleType) { +	int result = false; +	T2PeopleType peopleType; + +	for (int i = m28; !result && i <= m2C; i++) { +		if (FetchItemAt(i, &peopleType)) { +			if (peopleType.Check(tenantMemberDef, a, b)) { +				result = true; +				outPeopleType = peopleType; +				if (!m24) { +					RemoveItemsAt(1, i); +					m2C--; +				} +			} +		} +	} + +	return result; +} + +void T2PeopleTypeArray::Restore(T2PeopleType& peopleType) { +	peopleType.RecoverLife(); +	InsertItemsAt(1, 1, &peopleType); +	m28++; +	m2C++; +} + +void T2PeopleTypeArray::Read(T2Archive& archive) { +	RemoveItemsAt(GetCount(), 1); + +	int count; +	archive >> count; + +	for (int i = 0; i < count; i++) { +		T2PeopleType peopleType; +		peopleType.Read(archive); +		Add(&peopleType, 1); +	} + +	archive >> m24; +	archive >> m28; +	archive >> m2C; +} + +void T2PeopleTypeArray::Write(T2Archive& archive) { +	archive << mItemCount; + +	LArrayIterator iter(*this); +	T2PeopleType peopleType; + +	while (iter.Next(&peopleType)) +		peopleType.Write(archive); + +	archive << m24; +	archive << m28; +	archive << m2C; +} diff --git a/src/T2DLL/T2PeopleTypeArray.h b/src/T2DLL/T2PeopleTypeArray.h new file mode 100644 index 0000000..f16734c --- /dev/null +++ b/src/T2DLL/T2PeopleTypeArray.h @@ -0,0 +1,25 @@ +#pragma once +#include "common.h" +#include "LArray.h" + +class T2PeopleTypeArray : protected LArray { +public: +	T2PeopleTypeArray(unsigned int); +	T2PeopleTypeArray(T2Archive&); +	virtual ~T2PeopleTypeArray(); +	void Add(T2PeopleType* type, unsigned int count, int where = 0); +	void Add(T2PeopleType*, T2PoolTimeZoneDef*, unsigned int); +	void AdjustLife(); +	void InitSearchLimit(float); +	int Find(T2TenantMemberDef*, int, unsigned int, int) const; +	int Call(T2TenantMemberDef*, int, unsigned int, T2PeopleType&); +	void Restore(T2PeopleType&); +	void Write(T2Archive&); +protected: +	void Read(T2Archive&); + +	int m20; +	unsigned int m24; +	int m28; +	int m2C; +}; diff --git a/src/T2DLL/T2PlaceParamDef.cpp b/src/T2DLL/T2PlaceParamDef.cpp new file mode 100644 index 0000000..a89b4e1 --- /dev/null +++ b/src/T2DLL/T2PlaceParamDef.cpp @@ -0,0 +1,15 @@ +#include "CResFile.h" +#include "T2PlaceParamDef.h" + +T2PlaceParamDef::T2PlaceParamDef(CResFile& resFile) { +	float divisor = 100.0f; + +	for (unsigned int i = 0; i < kMaxPlace; i++) { +		resFile >> mEntries[i].mPercent; +		resFile >> mEntries[i].mScore; +		mEntries[i].mRate = mEntries[i].mPercent / divisor; +	} +} + +/*virtual*/ T2PlaceParamDef::~T2PlaceParamDef() { +} diff --git a/src/T2DLL/T2PlaceParamDef.h b/src/T2DLL/T2PlaceParamDef.h new file mode 100644 index 0000000..b3165f4 --- /dev/null +++ b/src/T2DLL/T2PlaceParamDef.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" + +class T2PlaceParamDef { +public: +	enum EPlace { +		Place_0, +		Place_1, +		Place_2, +		kMaxPlace +	}; + +	T2PlaceParamDef(CResFile& resFile); +	virtual ~T2PlaceParamDef(); + +	unsigned int GetPercent(EPlace place) const { return mEntries[place].mPercent; } +	float GetRate(EPlace place) const { return mEntries[place].mRate; } +	short GetScore(EPlace place) const { return mEntries[place].mScore; } + +protected: +	struct { +		unsigned int mPercent; +		short mScore; +		float mRate; +	} mEntries[kMaxPlace]; +}; diff --git a/src/T2DLL/T2PluginInfoTable.cpp b/src/T2DLL/T2PluginInfoTable.cpp new file mode 100644 index 0000000..718bc5c --- /dev/null +++ b/src/T2DLL/T2PluginInfoTable.cpp @@ -0,0 +1,25 @@ +#include "T2PluginInfoTable.h" + +/*virtual*/ int T2PluginInfoTable::Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int) { +} + +T2PluginInfoTable::T2PluginInfoTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2PluginInfoTable::~T2PluginInfoTable() { +} + +void T2PluginInfoTable::Add(CPluginInfo*) { +} + +void T2PluginInfoTable::Add(T2PluginSpecifier*) { +} + +/*virtual*/ void T2PluginInfoTable::DrawCellSelf(CDC*, const TableCellT&, int) { +} + +/*virtual*/ int T2PluginInfoTable::OnT2DlgItemCreate(CREATESTRUCTA*) { +} + +/*virtual*/ int T2PluginInfoTable::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2PluginInfoTable.h b/src/T2DLL/T2PluginInfoTable.h new file mode 100644 index 0000000..244efa3 --- /dev/null +++ b/src/T2DLL/T2PluginInfoTable.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2PluginInfoTable { +public: +	virtual int Create(const char*, unsigned long, const RECT&, CWnd*, unsigned int); +	T2PluginInfoTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2PluginInfoTable(); +	void Add(CPluginInfo*); +	void Add(T2PluginSpecifier*); +protected: +	virtual void DrawCellSelf(CDC*, const TableCellT&, int); +	virtual int OnT2DlgItemCreate(CREATESTRUCTA*); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +}; diff --git a/src/T2DLL/T2PluginLoader.cpp b/src/T2DLL/T2PluginLoader.cpp new file mode 100644 index 0000000..57867ed --- /dev/null +++ b/src/T2DLL/T2PluginLoader.cpp @@ -0,0 +1,214 @@ +#include "CT2App.h" +#include "GlobalFunc.h" +#include "T2PluginLoader.h" +#include "T2PluginSpecifier.h" + +T2PluginLoader::T2PluginLoader() { +} + +T2PluginLoader::~T2PluginLoader() { +	POSITION p = mList.GetHeadPosition(); +	while (p) { +		T2PluginSpecifier *spec = (T2PluginSpecifier *) mList.GetNext(p); +		if (spec->mIsLoaded) +			UnloadPlugin(spec); +		delete spec; +	} +} + +void T2PluginLoader::InitFileList() { +	char *dirBuf = (char *) malloc(1000); +	GetTowerDirectory(dirBuf); +	strcat(dirBuf, "Plugins\\"); +	char *dirBufEnd = &dirBuf[strlen(dirBuf)]; + +	CString dbPath = GetTowerDirectory() + "plugins\\Database"; +	BOOL errorFlag = false; + +	CFile file; +	if (file.Open(dbPath, CFile::modeRead)) { +		CArchive archive(&file, CArchive::load); + +		DWORD count = mList.GetCount(); +		archive >> count; + +		for (unsigned int i = 0; i < count; i++) { +			T2PluginSpecifier *spec = new T2PluginSpecifier; +			spec->Read(archive); +			mList.AddTail(spec); +		} + +		archive.Close(); +		file.Close(); + +		// check that the database is up-to-date +		CFileStatus status; +		int count2 = 0; + +		POSITION p = mList.GetHeadPosition(); +		while (p) { +			T2PluginSpecifier *spec = (T2PluginSpecifier *) mList.GetNext(p); +			if (CFile::GetStatus(spec->mPath, status)) { +				if (status.m_mtime == spec->mTime) +					count2++; +			} +		} + +		if (count2 != mList.GetCount()) +			errorFlag = true; + +		count2 = 0; + +		strcpy(dirBufEnd, "*.t2p"); +		WIN32_FIND_DATA findData; +		HANDLE findHandle = FindFirstFile(dirBuf, &findData); +		BOOL findOK = (findHandle != INVALID_HANDLE_VALUE); +		while (findOK) { +			findOK = FindNextFile(findHandle, &findData); +			count2++; +		} +		FindClose(findHandle); + +		if (count2 != mList.GetCount()) +			errorFlag = true; +	} else { +		errorFlag = true; +	} + +	if (errorFlag) { +		// update the DB +		AfxSetResourceHandle(gT2App->m_hInstance); + +		CDialog *dialog = new CDialog; +		dialog->Create(1000); +		gT2App->app_vfB4(); + +		POSITION p = mList.GetHeadPosition(); +		while (p) { +			T2PluginSpecifier *spec = (T2PluginSpecifier *) mList.GetNext(p); +			delete spec; +		} +		mList.RemoveAll(); + +		strcpy(dirBufEnd, "*.t2p"); +		WIN32_FIND_DATA findData; +		HANDLE findHandle = FindFirstFile(dirBuf, &findData); +		BOOL findOK = (findHandle != INVALID_HANDLE_VALUE); +		while (findOK) { +			strcpy(dirBufEnd, findData.cFileName); + +			T2PluginSpecifier *spec = new T2PluginSpecifier; +			spec->Initialize(NULL, dirBuf); +			spec->mInstance = NULL; +			spec->mIsLoaded = false; +			mList.AddTail(spec); + +			findOK = FindNextFile(findHandle, &findData); +		} +		FindClose(findHandle); + +		if (file.Open(dbPath, CFile::modeWrite | CFile::modeCreate)) { +			CArchive archive(&file, CArchive::store); + +			DWORD count = mList.GetCount(); +			archive << count; + +			p = mList.GetHeadPosition(); +			while (p) { +				T2PluginSpecifier *spec = (T2PluginSpecifier *) mList.GetNext(p); +				spec->Write(archive); +			} + +			archive.Close(); +			file.Close(); +		} + +		dialog->DestroyWindow(); +	} + +	free(dirBuf); +} + +typedef void *(MSVC_STDCALL* ConstructProgramPluginType) (T2PluginSpecifier *); +typedef void (MSVC_STDCALL* DestructProgramPluginType) (void); + +/*static*/ void* T2PluginLoader::LoadPlugin(T2PluginSpecifier* spec) { +	if (!spec->mIsLoaded) { +		HMODULE module = LoadLibrary(spec->mPath); +		spec->mInstance = (HINSTANCE) module; +	} + +	ConstructProgramPluginType func = (ConstructProgramPluginType) GetProcAddress((HMODULE) spec->mInstance, "ConstructProgramPlugin"); +#line 142 +	_ASSERT(func); + +	spec->mIsLoaded = true; +	return func(spec); +} + +/*static*/ void T2PluginLoader::UnloadPlugin(T2PluginSpecifier* spec) { +	if (spec->mIsSubPlugin) { +		spec->mIsLoaded = false; +		return; +	} + +#line 154 +	_ASSERT(spec->mIsLoaded); +	DestructProgramPluginType func = (DestructProgramPluginType) GetProcAddress((HMODULE) spec->mInstance, "DestructProgramPlugin"); +#line 156 +	_ASSERT(func); + +	spec->mIsLoaded = false; +	func(); +	FreeLibrary((HMODULE) spec->mInstance); +} + +void T2PluginLoader::SetTypeFilter(POSITION& p, DWORD type) { +	p = mList.GetHeadPosition(); + +	if (type) +		mTypeFilter = type; +	else +		mTypeFilter = 0; +} + +T2PluginSpecifier* T2PluginLoader::GetNext(POSITION& p) { +	while (p) { +		T2PluginSpecifier *spec = (T2PluginSpecifier *) mList.GetNext(p); +		if ( +			(mTypeFilter == 0 || spec->mType == mTypeFilter) && +			(spec->m28 == -1 || spec->m28 == 1) // 1 might be a version constant here +		) +			return spec; +	} + +	return NULL; +} + +T2PluginSpecifier* T2PluginLoader::FindPlugin(DWORD id, DWORD type) { +	POSITION p; +	T2PluginSpecifier *spec; + +	SetTypeFilter(p, type); + +	while ((spec = GetNext(p))) { +		if (spec->mID == id) +			return spec; +	} + +	return NULL; +} + +T2PluginSpecifier* T2PluginLoader::FindPlugin(const char* name, DWORD type) { +	POSITION p; +	T2PluginSpecifier *spec; + +	SetTypeFilter(p, type); + +	while ((spec = GetNext(p))) { +		if (spec->mPluginName == name) +			return spec; +	} + +	return NULL; +} diff --git a/src/T2DLL/T2PluginLoader.h b/src/T2DLL/T2PluginLoader.h new file mode 100644 index 0000000..58faf15 --- /dev/null +++ b/src/T2DLL/T2PluginLoader.h @@ -0,0 +1,19 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2PluginLoader { +public: +	T2PluginLoader(); +	~T2PluginLoader(); +	void InitFileList(); +	static void* LoadPlugin(T2PluginSpecifier*); +	static void UnloadPlugin(T2PluginSpecifier*); +	void SetTypeFilter(POSITION& p, DWORD type); +	T2PluginSpecifier* GetNext(POSITION& p); +	T2PluginSpecifier* FindPlugin(DWORD id, DWORD type); +	T2PluginSpecifier* FindPlugin(const char* name, DWORD type); + +protected: +	CObList mList; +	DWORD mTypeFilter; +}; diff --git a/src/T2DLL/T2PluginSpecifier.cpp b/src/T2DLL/T2PluginSpecifier.cpp new file mode 100644 index 0000000..5e8c16b --- /dev/null +++ b/src/T2DLL/T2PluginSpecifier.cpp @@ -0,0 +1,114 @@ +#include "T2PluginSpecifier.h" +#include "CResFile.h" +#include "GlobalFunc.h" + +T2PluginSpecifier::T2PluginSpecifier() { +	mInstance = NULL; +	mPluginName = "Not loaded"; +	mPath = "Not loaded"; +	mIsSubPlugin = false; +	mType = 0; +	mID = 0; +	mSecretItem = 0; +	m28 = -1; +	mIsLoaded = 0; +} + +/*virtual*/ void T2PluginSpecifier::operator=(T2PluginSpecifier& other) { +	mInstance = other.mInstance; +	mPluginName = other.mPluginName; +	mPath = other.mPath; +	mIsSubPlugin = other.mIsSubPlugin; +	mType = other.mType; +	mID = other.mID; +	mAttrib = other.mAttrib; +	mGameLevel = other.mGameLevel; +	mSecretItem = other.mSecretItem; +	m28 = other.m28; +	mIsLoaded = other.mIsLoaded; +	mTime = other.mTime; +} + +void T2PluginSpecifier::Initialize(HINSTANCE inst, const char* path) { +	CResFile resFile; + +	if (inst) { +		if (!resFile.OpenResource(inst, 128, "ATTR")) { +#line 45 +			__Rep1(__FILE__, __LINE__, "�v���O�C�������Ă��邩�A�ȑO��The Tower�U���Ù�I���������߂ÉA�v���O�C�����g���Ȃ��Ȃ��Ă��܂��B\nWindows���ċN�����Ă݂Ă��������B\n�v���O�C�� �F %s", (DWORD) path); +		} +	} else { +		if (!resFile.OpenResource(path, 128, 'ATTR')) { +#line 50 +			__Rep1(__FILE__, __LINE__, "�v���O�C�������Ă��邩�A�ȑO��The Tower�U���Ù�I���������߂ÉA�v���O�C�����g���Ȃ��Ȃ��Ă��܂��B\nWindows���ċN�����Ă݂Ă��������B\n�v���O�C�� �F %s", (DWORD) path); +		} +	} + +	int a; + +	resFile >> mID; +	resFile >> mAttrib; +	resFile >> a; // mDependID +	resFile >> mGameLevel; +	resFile >> mSecretItem; +	resFile >> a; // mItemType +	resFile >> a; // mMustItem +	resFile >> mPluginName; + +	mIsSubPlugin = resFile.IsSubPlugin(); +	mPath = path; +	mInstance = inst; +	mIsLoaded = true; + +	if (inst) { +		if (!resFile.OpenResource(inst, 128, "DESC")) { +#line 68 +			__Rep1(__FILE__, __LINE__, "�v���O�C�������Ă��邩�A�ȑO��The Tower�U���Ù�I���������߂ÉA�v���O�C�����g���Ȃ��Ȃ��Ă��܂��B\nWindows���ċN�����Ă݂Ă��������B\n�v���O�C�� �F %s", (DWORD) path); +		} +	} else { +		if (!resFile.OpenResource(path, 128, 'DESC')) { +#line 73 +			__Rep1(__FILE__, __LINE__, "�v���O�C�������Ă��邩�A�ȑO��The Tower�U���Ù�I���������߂ÉA�v���O�C�����g���Ȃ��Ȃ��Ă��܂��B\nWindows���ċN�����Ă݂Ă��������B\n�v���O�C�� �F %s", (DWORD) path); +		} +	} + +	resFile >> mType; +	resFile >> m28; + +	CFileStatus fileStatus; +	CFile::GetStatus(path, fileStatus); +	mTime = fileStatus.m_mtime; +} + +void T2PluginSpecifier::Read(CArchive& archive) { +	DWORD inst; +	archive >> inst; +	mInstance = (HINSTANCE) inst; +	archive >> mPluginName; +	archive >> mPath; +	archive >> mIsSubPlugin; +	archive >> mType; +	archive >> mID; +	archive >> mAttrib; +	archive >> mGameLevel; +	archive >> mSecretItem; +	archive >> m28; +	archive >> mIsLoaded; +	archive >> mTime; +} + +void T2PluginSpecifier::Write(CArchive& archive) { +	DWORD inst = (DWORD) mInstance; +	archive << inst; +	archive << mPluginName; +	archive << mPath; +	archive << mIsSubPlugin; +	archive << mType; +	archive << mID; +	archive << mAttrib; +	archive << mGameLevel; +	archive << mSecretItem; +	archive << m28; +	archive << mIsLoaded; +	archive << mTime; +} diff --git a/src/T2DLL/T2PluginSpecifier.h b/src/T2DLL/T2PluginSpecifier.h new file mode 100644 index 0000000..c6a6eb5 --- /dev/null +++ b/src/T2DLL/T2PluginSpecifier.h @@ -0,0 +1,27 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2PluginSpecifier : public CObject { +public: +	T2PluginSpecifier(); +	virtual void operator=(T2PluginSpecifier&); +	void Initialize(HINSTANCE, const char*); +	void Read(CArchive&); +	void Write(CArchive&); + +	// virtual ~T2PluginSpecifier() {} + +public: +	HINSTANCE mInstance; +	CString mPluginName; +	CString mPath; +	BOOL mIsSubPlugin; +	DWORD mID; +	DWORD mType; +	unsigned int mAttrib; +	int mGameLevel; +	int mSecretItem; +	int m28; // maybe game version? +	BOOL mIsLoaded; +	CTime mTime; +}; diff --git a/src/T2DLL/T2Pool.cpp b/src/T2DLL/T2Pool.cpp new file mode 100644 index 0000000..1b1d709 --- /dev/null +++ b/src/T2DLL/T2Pool.cpp @@ -0,0 +1,58 @@ +#include "T2Pool.h" + +T2Pool::T2Pool(T2PoolDef*, T2SeasonParamDef*, T2TemplatePluginList*, T2PeopleArrayList*, int, unsigned int, unsigned int, T2WorldDef*) { +} + +T2Pool::T2Pool(T2Archive&, T2PoolDef*, T2SeasonParamDef*, T2TemplatePluginList*, T2PeopleArrayList*, T2WorldDef*) { +} + +/*virtual*/ T2Pool::~T2Pool() { +} + +void T2Pool::GameLevelChanged(int) { +} + +void T2Pool::IncHour(T2DateTime*) { +} + +void T2Pool::DayChanged() { +} + +int T2Pool::IsChangePopulation() { +} + +int T2Pool::Find(T2TenantMemberDef*, int, unsigned int, int) const { +} + +int T2Pool::Find(T2TenantMemberTableDef*, int, unsigned int, int) const { +} + +T2People* T2Pool::Call(T2TenantMemberDef*, int, unsigned int, unsigned int) { +} + +void T2Pool::Enter(T2People*) { +} + +void T2Pool::Leave(T2People*) { +} + +T2People* T2Pool::RecoverPeople(T2PeopleType*) { +} + +void T2Pool::ShrinkPeople(T2People*, T2PeopleType&) { +} + +void T2Pool::DuplicatePeople(T2PeopleType*) { +} + +void T2Pool::RemovePeople(T2People*) { +} + +T2People* T2Pool::BornVIP(int, int) { +} + +void T2Pool::DeadVIP(T2People*) { +} + +void T2Pool::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2Pool.h b/src/T2DLL/T2Pool.h new file mode 100644 index 0000000..edd9020 --- /dev/null +++ b/src/T2DLL/T2Pool.h @@ -0,0 +1,33 @@ +#pragma once +#include "common.h" + +class T2Pool { +public: +	T2Pool(T2PoolDef*, T2SeasonParamDef*, T2TemplatePluginList*, T2PeopleArrayList*, int, unsigned int, unsigned int, T2WorldDef*); +	T2Pool(T2Archive&, T2PoolDef*, T2SeasonParamDef*, T2TemplatePluginList*, T2PeopleArrayList*, T2WorldDef*); +	virtual ~T2Pool(); +	void GameLevelChanged(int); +	void IncHour(T2DateTime*); +protected: +	void DayChanged(); +public: +	int IsChangePopulation(); +	int Find(T2TenantMemberDef*, int, unsigned int, int) const; +	int Find(T2TenantMemberTableDef*, int, unsigned int, int) const; +	T2People* Call(T2TenantMemberDef*, int, unsigned int, unsigned int); +	void Enter(T2People*); +	void Leave(T2People*); +protected: +	T2People* RecoverPeople(T2PeopleType*); +	void ShrinkPeople(T2People*, T2PeopleType&); +public: +	void DuplicatePeople(T2PeopleType*); +	void RemovePeople(T2People*); +	T2People* BornVIP(int, int); +	void DeadVIP(T2People*); +	void Write(T2Archive&); + +	T2Pool(const T2Pool&) {} +	T2Pool& operator=(const T2Pool&) {} +	int GetPopulation() const {} +}; diff --git a/src/T2DLL/T2PoolDef.cpp b/src/T2DLL/T2PoolDef.cpp new file mode 100644 index 0000000..8dba974 --- /dev/null +++ b/src/T2DLL/T2PoolDef.cpp @@ -0,0 +1,152 @@ +#include "CResFile.h" +#include "T2PoolDef.h" + +T2PoolTimeZoneDef::T2PoolTimeZoneDef(CResFile &resFile) { +	Initialize(); + +	resFile >> mNumOfElems; +	mPeopleElems = new PeopleElem[mNumOfElems]; + +	unsigned int theSum = 0; + +	for (unsigned int i = 0; i < mNumOfElems; i++) { +		resFile >> mPeopleElems[i].mSilhouetteType; +		resFile >> mPeopleElems[i].mEconoType; +		resFile >> mPeopleElems[i].mTransportType; +		resFile >> mPeopleElems[i].mRate; +		mPeopleElems[i].m4 = (mPeopleElems[i].mRate * 20) / 100; +		theSum += mPeopleElems[i].m4; +	} +} + +void T2PoolTimeZoneDef::Initialize() { +	mNumOfElems = 0; +	mPeopleElems = NULL; +} + +T2PoolTimeZoneDef::~T2PoolTimeZoneDef() { +	delete[] mPeopleElems; +} + +PeopleElem *T2PoolTimeZoneDef::GetPeopleElem(unsigned int index) const { +	PeopleElem *elem = NULL; +	if (index < mNumOfElems) +		elem = &mPeopleElems[index]; +	return elem; +} + + + +T2PoolDefDemandElem::T2PoolDefDemandElem() { +	mNumOfElems = 0; +	mElems = NULL; +} + +void T2PoolDefDemandElem::Initialize(CResFile &resFile) { +	resFile >> mNumOfElems; +	mElems = new TimeZoneInfo[mNumOfElems]; + +	for (unsigned int i = 0; i < mNumOfElems; i++) { +		resFile >> mElems[i].m0; +		resFile >> mElems[i].m4; +	} +} + +T2PoolDefDemandElem::~T2PoolDefDemandElem() { +	delete[] mElems; +} + +TimeZoneInfo *T2PoolDefDemandElem::GetTimeZoneInfo(unsigned int index) const { +	TimeZoneInfo *elem = NULL; +	if (index < mNumOfElems) +		elem = &mElems[index]; +	return elem; +} + + + +T2PoolGradeDef::T2PoolGradeDef(CResFile &resFile) { +	Initialize(); + +	resFile >> mNumOfElems; +	mDemandElems = new T2PoolDefDemandElem[mNumOfElems]; + +	for (unsigned int i = 0; i < mNumOfElems; i++) { +		mDemandElems[i].Initialize(resFile); +	} +} + +void T2PoolGradeDef::Initialize() { +	mNumOfElems = 0; +	mDemandElems = NULL; +} + +T2PoolGradeDef::~T2PoolGradeDef() { +	delete[] mDemandElems; +} + +T2PoolDefDemandElem *T2PoolGradeDef::GetDemandElem(unsigned int index) const { +	T2PoolDefDemandElem *elem = NULL; +	if (index < mNumOfElems) +		elem = &mDemandElems[index]; +	return elem; +} + + + +T2PoolDef::T2PoolDef(CResFile &resFile, T2WorldPlugin *worldPlugin) { +	unsigned int i; + +	Initialize(); + +	mWorldPlugin = worldPlugin; + +	resFile >> m8; +	for (i = 0; i < 5; i++) +		resFile >> mGradeDefResID[i]; + +	resFile >> m20; +	resFile >> mNumOfDemand; +#line 129 +	_ASSERT(mNumOfDemand <= 8); + +	mDemand = new DemandInfo[mNumOfDemand]; +	for (i = 0; i < mNumOfDemand; i++) { +		resFile >> mDemand[i].a; +		resFile >> mDemand[i].b; +	} +} + +void T2PoolDef::Initialize() { +	mWorldPlugin = NULL; +	m20 = 0; +	mNumOfDemand = 0; +	m8 = 0; +	for (unsigned int i = 0; i < 5; i++) +		mGradeDefResID[i] = 0; +	mDemand = NULL; +} + +T2PoolDef::~T2PoolDef() { +	delete[] mDemand; +} + +HINSTANCE T2PoolDef::GetModuleHandle() { +	// TODO T2WorldPlugin +	return 0; +} + +DemandInfo *T2PoolDef::GetDemandInfo(unsigned int index) const { +	DemandInfo *info = NULL; +	if (index < mNumOfDemand) +		info = &mDemand[index]; +	return info; +} + +int T2PoolDef::GetGradeDefResID(unsigned int index) const { +	int resID = 0; +	int index0 = index - 1; +	if (index0 < 5) +		resID = mGradeDefResID[index0]; +	return resID; +} diff --git a/src/T2DLL/T2PoolDef.h b/src/T2DLL/T2PoolDef.h new file mode 100644 index 0000000..b999575 --- /dev/null +++ b/src/T2DLL/T2PoolDef.h @@ -0,0 +1,78 @@ +#pragma once +#include "common.h" + +// actual name unknown +struct PeopleElem { +	unsigned char mSilhouetteType; +	unsigned char mEconoType; +	unsigned char mTransportType; +	unsigned char mRate; +	unsigned int m4; +}; + +class T2PoolTimeZoneDef { +public: +	T2PoolTimeZoneDef(CResFile &resFile); +	void Initialize(); +	~T2PoolTimeZoneDef(); +	PeopleElem *GetPeopleElem(unsigned int index) const; + +	// p sure this exists (1005f090) +	unsigned int GetNumOfElems() const { return mNumOfElems; } + +	unsigned int mNumOfElems; +	PeopleElem *mPeopleElems; +}; + +// actual name unknown +struct TimeZoneInfo { +	int m0; +	unsigned int m4; +}; + +class T2PoolDefDemandElem { +public: +	T2PoolDefDemandElem(); +	void Initialize(CResFile &resFile); +	~T2PoolDefDemandElem(); +	TimeZoneInfo *GetTimeZoneInfo(unsigned int index) const; + +	unsigned int mNumOfElems; +	TimeZoneInfo *mElems; +}; + +class T2PoolGradeDef { +public: +	T2PoolGradeDef(CResFile &resFile); +	void Initialize(); +	virtual ~T2PoolGradeDef(); +	T2PoolDefDemandElem *GetDemandElem(unsigned int index) const; + +	unsigned int mNumOfElems; +	T2PoolDefDemandElem *mDemandElems; +}; + +// actual name unknown +struct DemandInfo { +	int a; +	unsigned char b; +}; + +class T2PoolDef { +public: +	T2PoolDef(CResFile &resFile, T2WorldPlugin *worldPlugin); +	void Initialize(); +	virtual ~T2PoolDef(); +	HINSTANCE GetModuleHandle(); +	DemandInfo *GetDemandInfo(unsigned int index) const; +	int GetGradeDefResID(unsigned int index) const; + +	unsigned char Get20() const { return m20; } + +	T2WorldPlugin *mWorldPlugin; +	int m8; +	int mGradeDefResID[5]; +	unsigned char m20; +	unsigned char mNumOfDemand; +	DemandInfo *mDemand; +}; diff --git a/src/T2DLL/T2PrefDialogBox.cpp b/src/T2DLL/T2PrefDialogBox.cpp new file mode 100644 index 0000000..c476826 --- /dev/null +++ b/src/T2DLL/T2PrefDialogBox.cpp @@ -0,0 +1,25 @@ +#include "T2PrefDialogBox.h" + +T2PrefDialogBox::T2PrefDialogBox() { +} + +/*virtual*/ T2PrefDialogBox::~T2PrefDialogBox() { +} + +/*virtual*/ int T2PrefDialogBox::OnT2DialogCommand(unsigned int, long) { +} + +/*virtual*/ int T2PrefDialogBox::OnT2EraseBkgnd(CDC*) { +} + +/*virtual*/ void T2PrefDialogBox::OnT2Create() { +} + +/*virtual*/ void T2PrefDialogBox::OnT2Destroy() { +} + +/*virtual*/ void T2PrefDialogBox::CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&) { +} + +void T2PrefDialogBox::SetupPluginPref() { +} diff --git a/src/T2DLL/T2PrefDialogBox.h b/src/T2DLL/T2PrefDialogBox.h new file mode 100644 index 0000000..0fb015b --- /dev/null +++ b/src/T2DLL/T2PrefDialogBox.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2PrefDialogBox { +public: +	T2PrefDialogBox(); +	virtual ~T2PrefDialogBox(); +protected: +	virtual int OnT2DialogCommand(unsigned int, long); +	virtual int OnT2EraseBkgnd(CDC*); +	virtual void OnT2Create(); +	virtual void OnT2Destroy(); +	virtual void CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&); +	void SetupPluginPref(); +}; diff --git a/src/T2DLL/T2PrefFile.cpp b/src/T2DLL/T2PrefFile.cpp new file mode 100644 index 0000000..3b973e8 --- /dev/null +++ b/src/T2DLL/T2PrefFile.cpp @@ -0,0 +1,8 @@ +#include "T2PrefFile.h" + +T2PrefFile::T2PrefFile(const unsigned char* str1, const unsigned char* str2, int val) { +	mStr = str2; +} + +/*virtual*/ T2PrefFile::~T2PrefFile() { +} diff --git a/src/T2DLL/T2PrefFile.h b/src/T2DLL/T2PrefFile.h new file mode 100644 index 0000000..1c33962 --- /dev/null +++ b/src/T2DLL/T2PrefFile.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" + +class T2PrefFile { +public: +	T2PrefFile(const unsigned char* str1, const unsigned char* str2, int val); +	virtual ~T2PrefFile(); + +protected: +	CString mStr; +}; diff --git a/src/T2DLL/T2RegistedTenantDB.cpp b/src/T2DLL/T2RegistedTenantDB.cpp new file mode 100644 index 0000000..939d158 --- /dev/null +++ b/src/T2DLL/T2RegistedTenantDB.cpp @@ -0,0 +1,31 @@ +#include "T2RegistedTenantDB.h" + +T2RegistedTenantDB::T2RegistedTenantDB() { +} + +/*virtual*/ T2RegistedTenantDB::~T2RegistedTenantDB() { +} + +void T2RegistedTenantDB::Init(T2TenantArrayList*) { +} + +void T2RegistedTenantDB::AddItem(T2Tenant*) { +} + +void T2RegistedTenantDB::RemoveItem(T2Tenant*) { +} + +T2EquipPtrList* T2RegistedTenantDB::GetList(unsigned int) const { +} + +T2Tenant* T2RegistedTenantDB::GetFirstTenant(unsigned int) const { +} + +T2Tenant* T2RegistedTenantDB::SearchToilet(const T2RouteNavigator*, POINT, int&) const { +} + +T2Tenant* T2RegistedTenantDB::FindEmptyParking() const { +} + +T2Tenant* T2RegistedTenantDB::FindHisParking(T2People*) const { +} diff --git a/src/T2DLL/T2RegistedTenantDB.h b/src/T2DLL/T2RegistedTenantDB.h new file mode 100644 index 0000000..fbe75d9 --- /dev/null +++ b/src/T2DLL/T2RegistedTenantDB.h @@ -0,0 +1,19 @@ +#pragma once +#include "common.h" + +class T2RegistedTenantDB { +public: +	T2RegistedTenantDB(); +	virtual ~T2RegistedTenantDB(); +	void Init(T2TenantArrayList*); +	void AddItem(T2Tenant*); +	void RemoveItem(T2Tenant*); +	T2EquipPtrList* GetList(unsigned int) const; +	T2Tenant* GetFirstTenant(unsigned int) const; +	T2Tenant* SearchToilet(const T2RouteNavigator*, POINT, int&) const; +	T2Tenant* FindEmptyParking() const; +	T2Tenant* FindHisParking(T2People*) const; + +	T2RegistedTenantDB(const T2RegistedTenantDB&) {} +	T2RegistedTenantDB& operator=(const T2RegistedTenantDB&) {} +}; diff --git a/src/T2DLL/T2RegistedTenantIterator.cpp b/src/T2DLL/T2RegistedTenantIterator.cpp new file mode 100644 index 0000000..ee47955 --- /dev/null +++ b/src/T2DLL/T2RegistedTenantIterator.cpp @@ -0,0 +1,13 @@ +#include "T2RegistedTenantIterator.h" + +T2RegistedTenantIterator::T2RegistedTenantIterator(const T2RegistedTenantDB*, unsigned int, const T2RouteNavigator*, POINT) { +} + +T2RegistedTenantIterator::~T2RegistedTenantIterator() { +} + +int T2RegistedTenantIterator::Next(T2Tenant*&) { +} + +int T2RegistedTenantIterator::NextJob(T2Tenant*&) { +} diff --git a/src/T2DLL/T2RegistedTenantIterator.h b/src/T2DLL/T2RegistedTenantIterator.h new file mode 100644 index 0000000..7f4a58a --- /dev/null +++ b/src/T2DLL/T2RegistedTenantIterator.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2RegistedTenantIterator { +public: +	T2RegistedTenantIterator(const T2RegistedTenantDB*, unsigned int, const T2RouteNavigator*, POINT); +	~T2RegistedTenantIterator(); +	int Next(T2Tenant*&); +	int NextJob(T2Tenant*&); + +	T2RegistedTenantIterator& operator=(const T2RegistedTenantIterator&) {} +}; diff --git a/src/T2DLL/T2RemoveFavoriteDialog.cpp b/src/T2DLL/T2RemoveFavoriteDialog.cpp new file mode 100644 index 0000000..1a64b4e --- /dev/null +++ b/src/T2DLL/T2RemoveFavoriteDialog.cpp @@ -0,0 +1,25 @@ +#include "T2RemoveFavoriteDialog.h" + +T2RemoveFavoriteDialog::T2RemoveFavoriteDialog() { +} + +/*virtual*/ T2RemoveFavoriteDialog::~T2RemoveFavoriteDialog() { +} + +/*virtual*/ void T2RemoveFavoriteDialog::OnT2Create() { +} + +/*virtual*/ void T2RemoveFavoriteDialog::CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&) { +} + +/*virtual*/ void T2RemoveFavoriteDialog::OnT2Destroy() { +} + +/*virtual*/ int T2RemoveFavoriteDialog::OnT2DialogCommand(unsigned int, long) { +} + +void T2RemoveFavoriteDialog::InitializeForRemovePeople(T2TowerDoc*) { +} + +void T2RemoveFavoriteDialog::InitializeForRemoveTenant(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2RemoveFavoriteDialog.h b/src/T2DLL/T2RemoveFavoriteDialog.h new file mode 100644 index 0000000..fbcebd3 --- /dev/null +++ b/src/T2DLL/T2RemoveFavoriteDialog.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2RemoveFavoriteDialog { +public: +	T2RemoveFavoriteDialog(); +	virtual ~T2RemoveFavoriteDialog(); +protected: +	virtual void OnT2Create(); +	virtual void CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&); +	virtual void OnT2Destroy(); +	virtual int OnT2DialogCommand(unsigned int, long); +public: +	void InitializeForRemovePeople(T2TowerDoc*); +	void InitializeForRemoveTenant(T2TowerDoc*); +}; diff --git a/src/T2DLL/T2Request.cpp b/src/T2DLL/T2Request.cpp new file mode 100644 index 0000000..7ae0b8e --- /dev/null +++ b/src/T2DLL/T2Request.cpp @@ -0,0 +1,118 @@ +#include "T2Request.h" + +T2Request::T2Request() { +} + +/*virtual*/ T2Request::~T2Request() { +} + +void T2Request::InitRequest(unsigned int, int, const RECT&) { +} + +void T2Request::InitRequest(T2FloorInfo*, unsigned int, POINT, ERequestUpDown) { +} + +void T2Request::RemoveRequest(T2TowerDoc*) { +} + +void T2Request::RemoveContents(T2FloorInfo*) { +} + +/*virtual*/ void T2Request::SetUsed(int) { +} + +void T2Request::StopRemoved(T2TowerDoc*, int) { +} + +void T2Request::CalcArea(RECT&) { +} + +void T2Request::CalcOnArea(RECT&) { +} + +void T2Request::CalcOffArea(RECT&) { +} + +void T2Request::CalcPrevArea(RECT&) { +} + +int T2Request::CalcPersonArea(T2People*, RECT&) { +} + +/*virtual*/ int T2Request::Enter(CLink*) { +} + +/*virtual*/ int T2Request::Leave(CLink*) { +} + +T2People* T2Request::LeaveFirst() { +} + +int T2Request::Regist(T2TowerDoc*, T2People*) { +} + +void T2Request::ChangeOffPPLStatus(T2FloorInfo*, T2People*) { +} + +void T2Request::AddOnPeople(T2People*) { +} + +T2People* T2Request::RemoveOnPeople() { +} + +void T2Request::AddOffPeople(T2People*) { +} + +T2People* T2Request::RemoveOffPeople() { +} + +/*virtual*/ unsigned int T2Request::Idle(T2TowerDoc*) { +} + +/*virtual*/ void T2Request::Draw(T2TowerDoc*, const RECT&) { +} + +void T2Request::DrawUp(T2TowerDoc*, const RECT&) { +} + +void T2Request::DrawDown(T2TowerDoc*, const RECT&) { +} + +void* T2Request::GetInfoClick(T2TowerDoc*, POINT) { +} + +void* T2Request::GetInfoClickUp(T2TowerDoc*, POINT) { +} + +void* T2Request::GetInfoClickDown(T2TowerDoc*, POINT) { +} + +void T2Request::BreakoutEmergency(T2TowerDoc*) { +} + +/*virtual*/ void T2Request::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2Request::SaveSelf(T2Archive&) { +} + +T2People* T2Request::FindPeople(int) const { +} + +int T2Request::CalcIncQueueArea(RECT&) const { +} + +void T2Request::DrawFinished() { +} + +T2People* T2Request::FindUpPeople(int) const { +} + +T2People* T2Request::FindDownPeople(int) const { +} + +void T2Request::CalcValidArea(RECT&) { +} + +/*virtual*/ void T2Request::DrawHitMask(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2Request.h b/src/T2DLL/T2Request.h new file mode 100644 index 0000000..0657b3a --- /dev/null +++ b/src/T2DLL/T2Request.h @@ -0,0 +1,67 @@ +#pragma once +#include "common.h" + +class T2Request { +public: +	T2Request(); +	virtual ~T2Request(); +	void InitRequest(unsigned int, int, const RECT&); +	void InitRequest(T2FloorInfo*, unsigned int, POINT, ERequestUpDown); +	void RemoveRequest(T2TowerDoc*); +protected: +	void RemoveContents(T2FloorInfo*); +public: +	virtual void SetUsed(int); +	void StopRemoved(T2TowerDoc*, int); +	void CalcArea(RECT&); +	void CalcOnArea(RECT&); +	void CalcOffArea(RECT&); +	void CalcPrevArea(RECT&); +	int CalcPersonArea(T2People*, RECT&); +	virtual int Enter(CLink*); +	virtual int Leave(CLink*); +	T2People* LeaveFirst(); +	int Regist(T2TowerDoc*, T2People*); +	void ChangeOffPPLStatus(T2FloorInfo*, T2People*); +	void AddOnPeople(T2People*); +	T2People* RemoveOnPeople(); +	void AddOffPeople(T2People*); +	T2People* RemoveOffPeople(); +	virtual unsigned int Idle(T2TowerDoc*); +	virtual void Draw(T2TowerDoc*, const RECT&); +protected: +	void DrawUp(T2TowerDoc*, const RECT&); +	void DrawDown(T2TowerDoc*, const RECT&); +	void* GetInfoClick(T2TowerDoc*, POINT); +	void* GetInfoClickUp(T2TowerDoc*, POINT); +	void* GetInfoClickDown(T2TowerDoc*, POINT); +public: +	void BreakoutEmergency(T2TowerDoc*); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); +public: +	T2People* FindPeople(int) const; +protected: +	int CalcIncQueueArea(RECT&) const; +	void DrawFinished(); +	T2People* FindUpPeople(int) const; +	T2People* FindDownPeople(int) const; +public: +	void CalcValidArea(RECT&); +	virtual void DrawHitMask(T2TowerDoc*); + +	unsigned int GetRequestID() const {} +	unsigned int GetMoverID() const {} +	void MoverIDChanged(unsigned int) {} +	ERequestUpDown GetUpDown() const {} +	POINT GetHeadPosition() const {} +	int GetModuleIndex() const {} +	int IsModuleReserved() const {} +	void CancelReservingModule() {} +	int GetDrawWidth() const {} +	void SetDrawWidth(int) {} +	int GetNumOfContent() const {} +	T2Request(const T2Request&) {} +	T2Request& operator=(const T2Request&) {} +}; diff --git a/src/T2DLL/T2RequestArray.cpp b/src/T2DLL/T2RequestArray.cpp new file mode 100644 index 0000000..ddaf603 --- /dev/null +++ b/src/T2DLL/T2RequestArray.cpp @@ -0,0 +1,22 @@ +#include "T2RequestArray.h" + +T2RequestArray::T2RequestArray(unsigned int) { +} + +/*virtual*/ T2RequestArray::~T2RequestArray() { +} + +T2Request* T2RequestArray::FindUnusedRequest() { +} + +/*virtual*/ void T2RequestArray::DispatchIdle(T2TowerDoc*, int) { +} + +void T2RequestArray::BreakoutEmergency(T2TowerDoc*) { +} + +void T2RequestArray::Read(T2Archive&, T2TowerDoc*) { +} + +void T2RequestArray::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2RequestArray.h b/src/T2DLL/T2RequestArray.h new file mode 100644 index 0000000..67eb51f --- /dev/null +++ b/src/T2DLL/T2RequestArray.h @@ -0,0 +1,18 @@ +#pragma once +#include "common.h" + +class T2RequestArray { +public: +	T2RequestArray(unsigned int); +	virtual ~T2RequestArray(); +	T2Request* FindUnusedRequest(); +	virtual void DispatchIdle(T2TowerDoc*, int); +	void BreakoutEmergency(T2TowerDoc*); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	T2Request* GetIndexRequest(int) {} +	T2RequestArray(const T2RequestArray&) {} +	T2RequestArray& operator=(const T2RequestArray&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2RequestArrayList.cpp b/src/T2DLL/T2RequestArrayList.cpp new file mode 100644 index 0000000..1bc4a9b --- /dev/null +++ b/src/T2DLL/T2RequestArrayList.cpp @@ -0,0 +1,34 @@ +#include "T2RequestArrayList.h" + +T2RequestArrayList::T2RequestArrayList() { +} + +/*virtual*/ T2RequestArrayList::~T2RequestArrayList() { +} + +void T2RequestArrayList::Add(T2RequestArray*) { +} + +unsigned int T2RequestArrayList::GetItemCount() { +} + +T2RequestArray* T2RequestArrayList::GetItemAt(int) { +} + +T2Request* T2RequestArrayList::GetRequestByID(unsigned int) { +} + +T2Request* T2RequestArrayList::FindUnusedRequest() { +} + +void T2RequestArrayList::BreakoutEmergency(T2TowerDoc*) { +} + +void T2RequestArrayList::Read(T2Archive&, T2TowerDoc*) { +} + +void T2RequestArrayList::Write(T2Archive&) { +} + +void T2RequestArrayList::DispatchIdle(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2RequestArrayList.h b/src/T2DLL/T2RequestArrayList.h new file mode 100644 index 0000000..a481e8d --- /dev/null +++ b/src/T2DLL/T2RequestArrayList.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class T2RequestArrayList { +public: +	T2RequestArrayList(); +	virtual ~T2RequestArrayList(); +	void Add(T2RequestArray*); +	unsigned int GetItemCount(); +	T2RequestArray* GetItemAt(int); +	T2Request* GetRequestByID(unsigned int); +	T2Request* FindUnusedRequest(); +	void BreakoutEmergency(T2TowerDoc*); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); +	void DispatchIdle(T2TowerDoc*); + +	T2RequestArrayList(const T2RequestArrayList&) {} +	T2RequestArrayList& operator=(const T2RequestArrayList&) {} +}; diff --git a/src/T2DLL/T2RequestIDArray.cpp b/src/T2DLL/T2RequestIDArray.cpp new file mode 100644 index 0000000..5cd2209 --- /dev/null +++ b/src/T2DLL/T2RequestIDArray.cpp @@ -0,0 +1,52 @@ +#include "T2RequestIDArray.h" + +T2RequestIDArray::T2RequestIDArray() { +} + +/*virtual*/ T2RequestIDArray::~T2RequestIDArray() { +} + +void T2RequestIDArray::Init(const RECT&) { +} + +unsigned int T2RequestIDArray::GetItemCount() const { +} + +void T2RequestIDArray::AllClear() { +} + +void T2RequestIDArray::Expand(EReqIDArrayPos, int) { +} + +void T2RequestIDArray::SetRequestIDAt(int, ERequestUpDown, unsigned int) { +} + +unsigned int T2RequestIDArray::GetRequestIDAt(int, ERequestUpDown) const { +} + +int T2RequestIDArray::GetIndex(int, ERequestUpDown) const { +} + +int T2RequestIDArray::IsStopPosition(int) const { +} + +void T2RequestIDArray::RemoveRequest(T2TowerDoc*, int, ERequestUpDown) { +} + +void T2RequestIDArray::Union(T2RequestIDArray*) { +} + +void T2RequestIDArray::MoverIDChanged(T2FloorInfo*, unsigned int) { +} + +void T2RequestIDArray::StopRemoved(T2TowerDoc*, int) { +} + +void T2RequestIDArray::ModuleRemoved(T2TowerDoc*, unsigned int) { +} + +/*static*/ T2RequestIDArray* T2RequestIDArray::ReadReqIDArray(T2Archive&) { +} + +/*static*/ void T2RequestIDArray::WriteReqIDArray(T2RequestIDArray*, T2Archive&) { +} diff --git a/src/T2DLL/T2RequestIDArray.h b/src/T2DLL/T2RequestIDArray.h new file mode 100644 index 0000000..3351078 --- /dev/null +++ b/src/T2DLL/T2RequestIDArray.h @@ -0,0 +1,28 @@ +#pragma once +#include "common.h" + +class T2RequestIDArray { +public: +	T2RequestIDArray(); +	virtual ~T2RequestIDArray(); +	void Init(const RECT&); +	unsigned int GetItemCount() const; +	void AllClear(); +	void Expand(EReqIDArrayPos, int); +	void SetRequestIDAt(int, ERequestUpDown, unsigned int); +	unsigned int GetRequestIDAt(int, ERequestUpDown) const; +private: +	int GetIndex(int, ERequestUpDown) const; +public: +	int IsStopPosition(int) const; +	void RemoveRequest(T2TowerDoc*, int, ERequestUpDown); +	void Union(T2RequestIDArray*); +	void MoverIDChanged(T2FloorInfo*, unsigned int); +	void StopRemoved(T2TowerDoc*, int); +	void ModuleRemoved(T2TowerDoc*, unsigned int); +	static T2RequestIDArray* ReadReqIDArray(T2Archive&); +	static void WriteReqIDArray(T2RequestIDArray*, T2Archive&); + +	T2RequestIDArray(const T2RequestIDArray&) {} +	T2RequestIDArray& operator=(const T2RequestIDArray&) {} +}; diff --git a/src/T2DLL/T2ReturnStack.cpp b/src/T2DLL/T2ReturnStack.cpp new file mode 100644 index 0000000..4c046bb --- /dev/null +++ b/src/T2DLL/T2ReturnStack.cpp @@ -0,0 +1,140 @@ +#include "T2Archive.h" +#include "T2ReturnStack.h" + +T2ReturnStack::T2ReturnStack() { +	Init(); +} + +T2ReturnStack::~T2ReturnStack() { +} + +void T2ReturnStack::Init() { +	for (int i = 0; i < 3; i++) { +		mEntries[i].tenant = 0; +		mEntries[i].time = 0; +	} +	mCount = 0; +} + +BOOL T2ReturnStack::Current(unsigned int &tenant, unsigned int &time) { +	if (mCount > 0) { +		tenant = mEntries[0].tenant; +		time = mEntries[0].time; +		return true; +	} +	return false; +} + +BOOL T2ReturnStack::Push(unsigned int tenant, unsigned int time) { +	if (mCount < 3) { +		for (int i = mCount - 1; i >= 0; i--) { +			mEntries[i + 1] = mEntries[i]; +		} +		mCount++; +		mEntries[0].tenant = tenant; +		mEntries[0].time = time; +		return true; +	} else { +		return false; +	} +} + +BOOL T2ReturnStack::Pop(unsigned int &tenant, unsigned int &time) { +	if (mCount > 0) { +		tenant = mEntries[0].tenant; +		time = mEntries[0].time; +		for (int i = 1; i < mCount; i++) { +			mEntries[i - 1] = mEntries[i]; +		} +		mCount--; +		return true; +	} else { +		return false; +	} +} + +BOOL T2ReturnStack::IsSetTime() const { +	BOOL result = false; +	if (mCount > 0 && mEntries[0].time != 0) +		result = true; +	return result; +} + +unsigned int T2ReturnStack::GetTenant() const { +	unsigned int result = 0; +	if (mCount > 0) +		result = mEntries[0].tenant; +	return result; +} + +unsigned int T2ReturnStack::GetTime() const { +	unsigned int result = 0; +	if (mCount > 0) +		result = mEntries[0].time; +	return result; +} + +void T2ReturnStack::SetTime(unsigned int time) { +	if (mCount > 0) +		mEntries[0].time = time; +} + +void T2ReturnStack::DayChanged() { +	for (int i = 0; i < mCount; i++) { +		if (mEntries[i].time >= 1440) { +			mEntries[i].time -= 1440; +		} else if (mEntries[i].time > 1438) { +			mEntries[i].time = 0; +		} +	} +} + +BOOL T2ReturnStack::Remove(unsigned int tenant) { +	BOOL result = false; + +	for (int i = 0; i < mCount; i++) { +		if (!result) { +			if (mEntries[i].tenant == tenant) +				result = true; +		} else { +			mEntries[i - 1] = mEntries[i]; +		} +	} + +	if (result) +		mCount--; + +	return result; +} + +void T2ReturnStack::Peek(int index, unsigned int &tenant, unsigned int &time) { +	tenant = mEntries[index].tenant; +	time = mEntries[index].time; +} + +void T2ReturnStack::Poke(int index, unsigned int tenant, unsigned int time) { +	mEntries[index].tenant = tenant; +	mEntries[index].time = time; +} + +void T2ReturnStack::Read(T2Archive &stream, T2TowerDoc *towerDoc) { +	stream >> mCount; +	for (int i = 0; i < mCount; i++) { +		unsigned short v; +		stream >> v; +		mEntries[i].tenant = v; +		stream >> v; +		mEntries[i].time = v; +	} +} + +void T2ReturnStack::Write(T2Archive &stream) { +	stream << mCount; +	for (int i = 0; i < mCount; i++) { +		unsigned short v; +		v = mEntries[i].tenant; +		stream << v; +		v = mEntries[i].time; +		stream << v; +	} +} diff --git a/src/T2DLL/T2ReturnStack.h b/src/T2DLL/T2ReturnStack.h new file mode 100644 index 0000000..c2db87f --- /dev/null +++ b/src/T2DLL/T2ReturnStack.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" + +class T2ReturnStack { +public: +	T2ReturnStack(); +	virtual ~T2ReturnStack(); +	void Init(); +	BOOL Current(unsigned int &tenant, unsigned int &time); +	BOOL Push(unsigned int tenant, unsigned int time); +	BOOL Pop(unsigned int &tenant, unsigned int &time); +	BOOL IsSetTime() const; +	unsigned int GetTenant() const; +	unsigned int GetTime() const; +	void SetTime(unsigned int time); +	void DayChanged(); +	BOOL Remove(unsigned int tenant); +	void Peek(int index, unsigned int &tenant, unsigned int &time); +	void Poke(int index, unsigned int tenant, unsigned int time); +	void Read(T2Archive &stream, T2TowerDoc *towerDoc); +	void Write(T2Archive &stream); + +	// TODO: confirm me +	BOOL IsSet() const { return mCount > 0; } + +	struct Entry { +		unsigned int tenant, time; +	}; +	Entry mEntries[3]; +	int mCount; +}; diff --git a/src/T2DLL/T2RouteCEArray.cpp b/src/T2DLL/T2RouteCEArray.cpp new file mode 100644 index 0000000..7a7585b --- /dev/null +++ b/src/T2DLL/T2RouteCEArray.cpp @@ -0,0 +1,44 @@ +#include "T2RouteCEArray.h" + +T2RouteCEArray::T2RouteCEArray() { +} + +/*virtual*/ T2RouteCEArray::~T2RouteCEArray() { +} + +void T2RouteCEArray::Insert(unsigned int a, unsigned int b) { +	if (a != 0) { +		int index = FetchIndexOf(&a); +		if (index != 0) +			InsertItemsAt(1, index + 1, &b); +		else +			InsertItemsAt(1, 1, &b); +	} else { +		InsertItemsAt(1, 1, &b); +	} +} + +unsigned int T2RouteCEArray::GetSameID(T2RouteCEArray* other) { +	unsigned int result = 0; + +	LArrayIterator outer(*this); +	unsigned int outerItem; + +	while (outer.Next(&outerItem)) { +		LArrayIterator inner(*other); +		unsigned int innerItem; + +		while (inner.Next(&innerItem)) { +			if (outerItem == innerItem) { +				result = outerItem; +				break; +			} +		} +	} + +	return result; +} + +int T2RouteCEArray::HasCrossEquip() const { +	return GetCount() > 0; +} diff --git a/src/T2DLL/T2RouteCEArray.h b/src/T2DLL/T2RouteCEArray.h new file mode 100644 index 0000000..f29482c --- /dev/null +++ b/src/T2DLL/T2RouteCEArray.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" +#include "T2CrossEquipArray.h" + +class T2RouteCEArray : public T2CrossEquipArray { +public: +	T2RouteCEArray(); +	virtual ~T2RouteCEArray(); +	void Insert(unsigned int, unsigned int); +	unsigned int GetSameID(T2RouteCEArray*); +	int HasCrossEquip() const; + +	virtual DWORD GetCEClassID() { return 'RCEA'; } +}; diff --git a/src/T2DLL/T2RouteNavigator.cpp b/src/T2DLL/T2RouteNavigator.cpp new file mode 100644 index 0000000..8d2e5a9 --- /dev/null +++ b/src/T2DLL/T2RouteNavigator.cpp @@ -0,0 +1,40 @@ +#include "T2RouteNavigator.h" + +T2RouteNavigator::T2RouteNavigator(T2FloorInfo*) { +} + +/*virtual*/ T2RouteNavigator::~T2RouteNavigator() { +} + +void T2RouteNavigator::FloorAdded(T2Tenant*, int) { +} + +void T2RouteNavigator::FloorRemoved(T2Tenant*, int) { +} + +void T2RouteNavigator::MoverAdded(T2Mover*, int) { +} + +void T2RouteNavigator::MoverRemoved(T2Mover*, int) { +} + +void T2RouteNavigator::MoverModified(T2Mover*, int) { +} + +void T2RouteNavigator::Update() { +} + +int T2RouteNavigator::CheckRoute(POINT, POINT, unsigned int, int) const { +} + +int T2RouteNavigator::IsConnectRouteFromLobby(POINT) const { +} + +int T2RouteNavigator::GetNextRoute(POINT, POINT&, int) const { +} + +T2Tenant* T2RouteNavigator::SelectNearTenant(POINT, unsigned int) const { +} + +int T2RouteNavigator::GetNextRouteUsingEStair(POINT, POINT&) const { +} diff --git a/src/T2DLL/T2RouteNavigator.h b/src/T2DLL/T2RouteNavigator.h new file mode 100644 index 0000000..eebe34d --- /dev/null +++ b/src/T2DLL/T2RouteNavigator.h @@ -0,0 +1,25 @@ +#pragma once +#include "common.h" + +class T2RouteNavigator { +public: +	T2RouteNavigator(T2FloorInfo*); +	virtual ~T2RouteNavigator(); +	void FloorAdded(T2Tenant*, int); +	void FloorRemoved(T2Tenant*, int); +	void MoverAdded(T2Mover*, int); +	void MoverRemoved(T2Mover*, int); +	void MoverModified(T2Mover*, int); +	void Update(); +	int CheckRoute(POINT, POINT, unsigned int, int) const; +	int IsConnectRouteFromLobby(POINT) const; +	int GetNextRoute(POINT, POINT&, int) const; +	T2Tenant* SelectNearTenant(POINT, unsigned int) const; +protected: +	int GetNextRouteUsingEStair(POINT, POINT&) const; + +public: +	T2RouteNavigator(const T2RouteNavigator&) {} +	T2RouteNavigator& operator=(const T2RouteNavigator&) {} +	T2FloorPtrList* GetFloorPtrList() const {} +}; diff --git a/src/T2DLL/T2RoutingTable.cpp b/src/T2DLL/T2RoutingTable.cpp new file mode 100644 index 0000000..8380825 --- /dev/null +++ b/src/T2DLL/T2RoutingTable.cpp @@ -0,0 +1,82 @@ +#include "T2RoutingTable.h" + +T2RoutingTable::T2RoutingTable(T2FloorInfo*, T2FloorPtrList*, int) { +} + +/*virtual*/ T2RoutingTable::~T2RoutingTable() { +} + +void T2RoutingTable::FloorAdded() { +} + +void T2RoutingTable::FloorRemoved(int) { +} + +int T2RoutingTable::IsRelatedMover(T2Mover*) const { +} + +void T2RoutingTable::MoverAdded(T2Mover*, int) { +} + +void T2RoutingTable::MoverRemoved(T2Mover*, int) { +} + +void T2RoutingTable::MoverModified(T2Mover*, int) { +} + +void T2RoutingTable::AddItem(T2Mover*) { +} + +void T2RoutingTable::RemoveItem(T2Mover*) { +} + +T2MoverRoutingTable* T2RoutingTable::GetItem(T2Mover*) const { +} + +int T2RoutingTable::GetElem(T2Mover*, int, T2RoutingTableElem&) const { +} + +int T2RoutingTable::GetIndex(T2Mover*) const { +} + +void T2RoutingTable::Update() { +} + +void T2RoutingTable::FullUpdate() { +} + +void T2RoutingTable::ClearData() { +} + +int T2RoutingTable::CheckRoute(POINT, POINT, unsigned int) const { +} + +int T2RoutingTable::IsConnectRouteFromLobby(POINT) const { +} + +int T2RoutingTable::GetNextRoute(POINT, POINT&) const { +} + +T2Tenant* T2RoutingTable::SelectNearTenant(POINT, unsigned int) const { +} + +T2Tenant* T2RoutingTable::SelectNearTenant(T2Tenant*, int, unsigned int) const { +} + +T2RoutingTableElem::T2RoutingTableElem() { +} + +T2RoutingTableElem::~T2RoutingTableElem() { +} + +int T2RoutingTableElem::IsStopFloor() const { +} + +void T2RoutingTableElem::SetTable(unsigned int, int) { +} + +int T2RoutingTableElem::IsSetTable(unsigned int, unsigned int, int, int) { +} + +int T2RoutingTableElem::HasNextRoute(unsigned int) const { +} diff --git a/src/T2DLL/T2RoutingTable.h b/src/T2DLL/T2RoutingTable.h new file mode 100644 index 0000000..a5596da --- /dev/null +++ b/src/T2DLL/T2RoutingTable.h @@ -0,0 +1,54 @@ +#pragma once +#include "common.h" + +class T2RoutingTable { +public: +	T2RoutingTable(T2FloorInfo*, T2FloorPtrList*, int); +	virtual ~T2RoutingTable(); +	void FloorAdded(); +	void FloorRemoved(int); +protected: +	int IsRelatedMover(T2Mover*) const; +public: +	void MoverAdded(T2Mover*, int); +	void MoverRemoved(T2Mover*, int); +	void MoverModified(T2Mover*, int); +protected: +	void AddItem(T2Mover*); +	void RemoveItem(T2Mover*); +	T2MoverRoutingTable* GetItem(T2Mover*) const; +	int GetElem(T2Mover*, int, T2RoutingTableElem&) const; +	int GetIndex(T2Mover*) const; +	void Update(); +public: +	void FullUpdate(); +protected: +	void ClearData(); +public: +	int CheckRoute(POINT, POINT, unsigned int) const; +	int IsConnectRouteFromLobby(POINT) const; +	int GetNextRoute(POINT, POINT&) const; +	T2Tenant* SelectNearTenant(POINT, unsigned int) const; +protected: +	T2Tenant* SelectNearTenant(T2Tenant*, int, unsigned int) const; + +public: +	T2RoutingTable(const T2RoutingTable&) {} +	T2RoutingTable& operator=(const T2RoutingTable&) {} +}; +class T2RoutingTableElem { +public: +	T2RoutingTableElem(); +	~T2RoutingTableElem(); +	int IsStopFloor() const; +	void SetTable(unsigned int, int); +	int IsSetTable(unsigned int, unsigned int, int, int); +	int HasNextRoute(unsigned int) const; + +	T2RoutingTableElem& operator=(const T2RoutingTableElem&) {} +	unsigned int GetNextFloorID() const {} +	unsigned int GetScore() const {} +	int GetTime() const {} +	int GetFinalHPos() const {} +	int HasRoute() const {} +}; diff --git a/src/T2DLL/T2SantaClaus.cpp b/src/T2DLL/T2SantaClaus.cpp new file mode 100644 index 0000000..df86e35 --- /dev/null +++ b/src/T2DLL/T2SantaClaus.cpp @@ -0,0 +1,25 @@ +#include "T2SantaClaus.h" + +T2SantaClaus::T2SantaClaus(T2TowerEvent*, CResFile*, int) { +} + +/*virtual*/ T2SantaClaus::~T2SantaClaus() { +} + +/*virtual*/ int T2SantaClaus::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2SantaClaus::IsBeginTime(unsigned int) { +} + +/*virtual*/ int T2SantaClaus::Exec(T2TowerDoc*) { +} + +/*virtual*/ void T2SantaClaus::StopEvent(T2TowerDoc*) { +} + +void T2SantaClaus::Show() { +} + +void T2SantaClaus::Hide() { +} diff --git a/src/T2DLL/T2SantaClaus.h b/src/T2DLL/T2SantaClaus.h new file mode 100644 index 0000000..4e83282 --- /dev/null +++ b/src/T2DLL/T2SantaClaus.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class T2SantaClaus { +public: +	T2SantaClaus(T2TowerEvent*, CResFile*, int); +	virtual ~T2SantaClaus(); +	virtual int Start(T2TowerDoc*); +	virtual int IsBeginTime(unsigned int); +	virtual int Exec(T2TowerDoc*); +	virtual void StopEvent(T2TowerDoc*); +private: +	void Show(); +	void Hide(); + +public: +	virtual unsigned long GetID() {} +	T2SantaClaus(const T2SantaClaus&) {} +	T2SantaClaus& operator=(const T2SantaClaus&) {} +}; diff --git a/src/T2DLL/T2SearchDialog.cpp b/src/T2DLL/T2SearchDialog.cpp new file mode 100644 index 0000000..2c37751 --- /dev/null +++ b/src/T2DLL/T2SearchDialog.cpp @@ -0,0 +1,10 @@ +#include "T2SearchDialog.h" + +T2SearchDialog::T2SearchDialog(T2TowerDoc*) { +} + +/*virtual*/ T2SearchDialog::~T2SearchDialog() { +} + +/*virtual*/ int T2SearchDialog::OnT2DialogCommand(unsigned int, long) { +} diff --git a/src/T2DLL/T2SearchDialog.h b/src/T2DLL/T2SearchDialog.h new file mode 100644 index 0000000..eaa3b4c --- /dev/null +++ b/src/T2DLL/T2SearchDialog.h @@ -0,0 +1,9 @@ +#pragma once +#include "common.h" + +class T2SearchDialog { +public: +	T2SearchDialog(T2TowerDoc*); +	virtual ~T2SearchDialog(); +	virtual int OnT2DialogCommand(unsigned int, long); +}; diff --git a/src/T2DLL/T2SettingDialog.cpp b/src/T2DLL/T2SettingDialog.cpp new file mode 100644 index 0000000..ab32382 --- /dev/null +++ b/src/T2DLL/T2SettingDialog.cpp @@ -0,0 +1,10 @@ +#include "T2SettingDialog.h" + +T2SettingDialog::T2SettingDialog(T2TowerDoc*) { +} + +/*virtual*/ T2SettingDialog::~T2SettingDialog() { +} + +/*virtual*/ int T2SettingDialog::OnT2DialogCommand(unsigned int, long) { +} diff --git a/src/T2DLL/T2SettingDialog.h b/src/T2DLL/T2SettingDialog.h new file mode 100644 index 0000000..1e5af78 --- /dev/null +++ b/src/T2DLL/T2SettingDialog.h @@ -0,0 +1,9 @@ +#pragma once +#include "common.h" + +class T2SettingDialog { +public: +	T2SettingDialog(T2TowerDoc*); +	virtual ~T2SettingDialog(); +	virtual int OnT2DialogCommand(unsigned int, long); +}; diff --git a/src/T2DLL/T2Settlement.cpp b/src/T2DLL/T2Settlement.cpp new file mode 100644 index 0000000..5b3058b --- /dev/null +++ b/src/T2DLL/T2Settlement.cpp @@ -0,0 +1,58 @@ +#include "T2Settlement.h" + +T2Settlement::T2Settlement(T2TowerDoc*, int) { +} + +T2Settlement::T2Settlement(T2TowerDoc*, T2Archive&) { +} + +T2Settlement::~T2Settlement() { +} + +T2Archive& T2Settlement::Write(T2Archive&) const { +} + +void T2Settlement::DoPay(int, short) { +} + +void T2Settlement::DoPayTool(int, short, T2ToolDef*) { +} + +void T2Settlement::EmitPayToolMessage(T2TowerDoc*, T2ToolDef*, const CString&, int, int) { +} + +T2DateTime* T2Settlement::GetTimeLimitOfMessage(T2TowerDoc*, T2ToolDef*, int) { +} + +void T2Settlement::SetTimeLimitOfMessage(T2TowerDoc*, T2ToolDef*, int, T2DateTime*) { +} + +T2DateTime* T2Settlement::FindCategoryTimeLimit(T2TowerDoc*, T2ToolDef*) { +} + +void T2Settlement::LinkCategoryTimeLimit(T2TowerDoc*, T2ToolDef*, T2DateTime*) { +} + +/*static*/ T2DateTime* T2Settlement::CalcTimeLimitOfMessage(T2DateTime*, int) { +} + +int T2Settlement::GetCurrentFunds() const { +} + +int T2Settlement::GetPreviousFunds() const { +} + +int T2Settlement::GetTotalSettlement(short) const { +} + +int T2Settlement::GetToolSettlement(T2ToolDef*) const { +} + +int T2Settlement::GetCategorySettlement(int) const { +} + +void T2Settlement::Initialize(T2TowerDoc*, int) { +} + +void T2Settlement::Update() { +} diff --git a/src/T2DLL/T2Settlement.h b/src/T2DLL/T2Settlement.h new file mode 100644 index 0000000..dc59339 --- /dev/null +++ b/src/T2DLL/T2Settlement.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" + +class T2Settlement { +public: +	T2Settlement(T2TowerDoc*, int); +	T2Settlement(T2TowerDoc*, T2Archive&); +	~T2Settlement(); +	T2Archive& Write(T2Archive&) const; +	void DoPay(int, short); +	void DoPayTool(int, short, T2ToolDef*); +	void EmitPayToolMessage(T2TowerDoc*, T2ToolDef*, const CString&, int, int); +protected: +	T2DateTime* GetTimeLimitOfMessage(T2TowerDoc*, T2ToolDef*, int); +	void SetTimeLimitOfMessage(T2TowerDoc*, T2ToolDef*, int, T2DateTime*); +	T2DateTime* FindCategoryTimeLimit(T2TowerDoc*, T2ToolDef*); +	void LinkCategoryTimeLimit(T2TowerDoc*, T2ToolDef*, T2DateTime*); +	static T2DateTime* CalcTimeLimitOfMessage(T2DateTime*, int); +public: +	int GetCurrentFunds() const; +	int GetPreviousFunds() const; +	int GetTotalSettlement(short) const; +	int GetToolSettlement(T2ToolDef*) const; +	int GetCategorySettlement(int) const; +protected: +	void Initialize(T2TowerDoc*, int); +public: +	void Update(); + +	T2Settlement& operator=(const T2Settlement&) {} +}; diff --git a/src/T2DLL/T2SilhouetteDef.cpp b/src/T2DLL/T2SilhouetteDef.cpp new file mode 100644 index 0000000..526a450 --- /dev/null +++ b/src/T2DLL/T2SilhouetteDef.cpp @@ -0,0 +1,10 @@ +#include "T2SilhouetteDef.h" + +T2SilhouetteDef::T2SilhouetteDef(unsigned long, T2PluginSpecifier&, CResFile*) { +} + +/*virtual*/ T2SilhouetteDef::~T2SilhouetteDef() { +} + +/*virtual*/ void T2SilhouetteDef::GetName(CString&) { +} diff --git a/src/T2DLL/T2SilhouetteDef.h b/src/T2DLL/T2SilhouetteDef.h new file mode 100644 index 0000000..1122af5 --- /dev/null +++ b/src/T2DLL/T2SilhouetteDef.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2SilhouetteDef { +public: +	T2SilhouetteDef(unsigned long, T2PluginSpecifier&, CResFile*); +	virtual ~T2SilhouetteDef(); +	virtual void GetName(CString&); + +	virtual int GetSortKey() {} +	int GetSilhouetteType() {} +	int GetSilhouette(int, int) {} +	T2SilhouetteDef& operator=(T2SilhouetteDef&) {} +	int GetWidth() const {} +	int GetRouteType() const {} +}; diff --git a/src/T2DLL/T2SilhouettePane.cpp b/src/T2DLL/T2SilhouettePane.cpp new file mode 100644 index 0000000..e38e5ef --- /dev/null +++ b/src/T2DLL/T2SilhouettePane.cpp @@ -0,0 +1,25 @@ +#include "T2SilhouettePane.h" + +int T2SilhouettePane::GetSilhouetteType() const { +} + +void T2SilhouettePane::SetCustomColor(const int&) { +} + +T2SilhouettePane::T2SilhouettePane(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2SilhouettePane::~T2SilhouettePane() { +} + +/*virtual*/ void T2SilhouettePane::DrawSelf(CDC*) { +} + +/*virtual*/ int T2SilhouettePane::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ int T2SilhouettePane::OnCreate(CREATESTRUCTA*) { +} + +void T2SilhouettePane::SetPeople(T2People*) { +} diff --git a/src/T2DLL/T2SilhouettePane.h b/src/T2DLL/T2SilhouettePane.h new file mode 100644 index 0000000..4e2ab4a --- /dev/null +++ b/src/T2DLL/T2SilhouettePane.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2SilhouettePane { +public: +	int GetSilhouetteType() const; +	void SetCustomColor(const int&); +	T2SilhouettePane(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2SilhouettePane(); +protected: +	virtual void DrawSelf(CDC*); +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual int OnCreate(CREATESTRUCTA*); +public: +	void SetPeople(T2People*); +}; diff --git a/src/T2DLL/T2SoundPlayer.cpp b/src/T2DLL/T2SoundPlayer.cpp new file mode 100644 index 0000000..7abc2a6 --- /dev/null +++ b/src/T2DLL/T2SoundPlayer.cpp @@ -0,0 +1,76 @@ +#include "T2SoundPlayer.h" + +/*static*/ const AFX_MSGMAP* __stdcall T2SoundPlayer::_GetBaseMessageMap() { +} + +/*virtual*/ const AFX_MSGMAP* T2SoundPlayer::GetMessageMap() const { +} + +T2SoundPlayer::T2SoundPlayer(CWnd*, IDirectSound*) { +} + +/*virtual*/ T2SoundPlayer::~T2SoundPlayer() { +} + +void T2SoundPlayer::AddSound(const CString&, SOUNDPRIORITY, const CString&) { +} + +void T2SoundPlayer::AddSound(const CString&, SOUNDPRIORITY, unsigned int, HINSTANCE) { +} + +int T2SoundPlayer::LoadSound(T2SoundObjItem*, const CString&, CWave&, int) { +} + +void T2SoundPlayer::DeleteSound(const CString&) { +} + +void T2SoundPlayer::DeleteSoundAll() { +} + +void T2SoundPlayer::Play(const CString&, unsigned int, unsigned int, POINT*, PLAYMODE, int) { +} + +void T2SoundPlayer::Stop(const CString&) { +} + +void T2SoundPlayer::StopAll() { +} + +void T2SoundPlayer::SetVolume(const CString&, int) { +} + +void T2SoundPlayer::SetSoundOn(int) { +} + +void T2SoundPlayer::FadeOut() { +} + +void T2SoundPlayer::FadeIn() { +} + +void T2SoundPlayer::PlayCDTrack(int, int) { +} + +void T2SoundPlayer::StopCD() { +} + +long T2SoundPlayer::OnMCINotify(unsigned int, long) { +} + +/*static*/ const AFX_MSGMAP T2SoundPlayer::messageMap { +} + +/*static*/ const AFX_MSGMAP_ENTRY* const T2SoundPlayer::_messageEntries { +} + +T2SoundObjItem::T2SoundObjItem() { +} + +T2SoundObjItem::~T2SoundObjItem() { +} + +T2SoundObjItemList::T2SoundObjItemList() { +} + +/*virtual*/ T2SoundObjItemList::~T2SoundObjItemList() { +} diff --git a/src/T2DLL/T2SoundPlayer.h b/src/T2DLL/T2SoundPlayer.h new file mode 100644 index 0000000..8d3d7c6 --- /dev/null +++ b/src/T2DLL/T2SoundPlayer.h @@ -0,0 +1,57 @@ +#pragma once +#include "common.h" + +enum PLAYMODE { +	PlayMode_0 +}; + +enum SOUNDPRIORITY { +	SoundPriority_0 +}; + +class T2SoundPlayer { +//protected: +//	static const AFX_MSGMAP* __stdcall _GetBaseMessageMap(); +//	virtual const AFX_MSGMAP* GetMessageMap() const; +public: +	T2SoundPlayer(CWnd*, IDirectSound*); +	virtual ~T2SoundPlayer(); +	void AddSound(const CString&, SOUNDPRIORITY, const CString&); +	void AddSound(const CString&, SOUNDPRIORITY, unsigned int, HINSTANCE); +private: +	int LoadSound(T2SoundObjItem*, const CString&, CWave&, int); +public: +	void DeleteSound(const CString&); +	void DeleteSoundAll(); +	void Play(const CString&, unsigned int, unsigned int, POINT*, PLAYMODE, int); +	void Stop(const CString&); +	void StopAll(); +	void SetVolume(const CString&, int); +	void SetSoundOn(int); +	void FadeOut(); +	void FadeIn(); +	void PlayCDTrack(int, int); +	void StopCD(); +protected: +	long OnMCINotify(unsigned int, long); +//	static const AFX_MSGMAP messageMap; +//private: +//	static const AFX_MSGMAP_ENTRY* const _messageEntries; + +public: +	unsigned int GetSEMask() const { return 0; } +	void SetSEMask(unsigned int) {} +	int IsSoundOn() const { return 0; } +}; + +class T2SoundObjItem { +public: +	T2SoundObjItem(); +	~T2SoundObjItem(); +}; + +class T2SoundObjItemList { +public: +	T2SoundObjItemList(); +	virtual ~T2SoundObjItemList(); +}; diff --git a/src/T2DLL/T2Sprite.cpp b/src/T2DLL/T2Sprite.cpp new file mode 100644 index 0000000..6f04e24 --- /dev/null +++ b/src/T2DLL/T2Sprite.cpp @@ -0,0 +1,157 @@ +#include "T2ImageObj.h" +#include "T2Sprite.h" +#include "T2SpriteObj.h" + +T2Sprite::T2Sprite() { +	SetRectEmpty(&mUpdateRect); +} + +/*virtual*/ T2Sprite::~T2Sprite() { +	AllClear(); +} + +void T2Sprite::AllClear() { +	POSITION p = GetHeadPosition(); +	while (p) { +		T2SpriteObj *obj = GetNext(p); +		delete obj; +	} +	RemoveAll(); +} + +int T2Sprite::NewSprite(T2ImageObj& imageObj, const CString& name, int layer) { +	T2SpriteObj *obj = new T2SpriteObj; +	obj->mImageObj = &imageObj; +	obj->mName = name; + +	int index; +	for (index = 0; ; index++) { +		if (!FindObj(index)) +			break; +	} +	obj->mIndex = index; +	obj->mLayer = layer; + +	int objIndex = imageObj.FindObject(name, -1, 0, 0, 255); +	imageObj.GetObjectSize(objIndex, &obj->mSize); +	AddTail(obj); +	return index; +} + +void T2Sprite::DeleteSprite(int index) { +	POSITION p = GetHeadPosition(); +	while (p) { +		POSITION prev = p; +		T2SpriteObj *obj = GetNext(p); +		if (obj->mIndex == index) { +			RemoveAt(prev); +			delete obj; +			break; +		} +	} +} + +T2SpriteObj* T2Sprite::FindObj(int index) { +	POSITION p = GetHeadPosition(); +	while (p) { +		T2SpriteObj *obj = GetNext(p); +		if (obj->mIndex == index) +			return obj; +	} + +	return NULL; +} + +void T2Sprite::ShowSprite(int index, BOOL show) { +	T2SpriteObj *obj = FindObj(index); +	if (obj) { +		if (show) +			obj->mShowCount++; +		else +			obj->mShowCount--; +		AddUpdateRect(obj, obj->mPosition); +	} +} + +void T2Sprite::ChangePattern(int index, int pattern) { +	T2SpriteObj *obj = FindObj(index); +	obj->mPattern = pattern; +	if (obj->mShowCount > 0) +		AddUpdateRect(obj, obj->mPosition); +} + +void T2Sprite::MoveSprite(int index, POINT pt) { +	T2SpriteObj *obj = FindObj(index); +	if (obj) { +		if (obj->mShowCount > 0) +			AddUpdateRect(obj, obj->mPosition); +		obj->mPosition = pt; +		if (obj->mShowCount > 0) +			AddUpdateRect(obj, obj->mPosition); +	} +} + +void T2Sprite::UpdateSprite(int index) { +	T2SpriteObj *obj = FindObj(index); +	AddUpdateRect(obj, obj->mPosition); +} + +void T2Sprite::GetSpriteRect(int index, RECT& outRect) { +	T2SpriteObj *obj = FindObj(index); +	outRect.left = obj->mPosition.x; +	outRect.top = obj->mPosition.y; +	outRect.right = obj->mPosition.x + obj->mSize.cx; +	outRect.bottom = obj->mPosition.y + obj->mSize.cy; +} + +void T2Sprite::GetUpdateRect(RECT* outRect, int factor) { +	*outRect = mUpdateRect; + +	int divisor = 1 << factor; +	outRect->top = (outRect->top >= 0) ? (outRect->top / divisor) : ((outRect->top - (divisor - 1)) / divisor); +	outRect->left = (outRect->left >= 0) ? (outRect->left / divisor) : ((outRect->left - (divisor - 1)) / divisor); +	outRect->bottom = (outRect->bottom >= 0) ? (outRect->bottom / divisor) : ((outRect->bottom - (divisor - 1)) / divisor); +	outRect->right = (outRect->right >= 0) ? (outRect->right / divisor) : ((outRect->right - (divisor - 1)) / divisor); + +	SetRectEmpty(&mUpdateRect); +} + +void T2Sprite::DrawLayer(T2BitImage* dest, int layer, int factor) { +	POSITION p = GetHeadPosition(); +	while (p) { +		T2SpriteObj *obj = GetNext(p); +		if (obj->mLayer == layer) +			DrawSprite(dest, obj, factor); +	} +} + +void T2Sprite::DrawSprite(T2BitImage* dest, T2SpriteObj* obj, int factor) { +	if (obj->mShowCount > 0) { +		RECT rect; +		SetRect( +			&rect, +			obj->mPosition.x, +			obj->mPosition.y, +			obj->mPosition.x + obj->mSize.cx, +			obj->mPosition.y + obj->mSize.cy +		); + +		rect.top = rect.top / (1 << factor); +		rect.left = rect.left / (1 << factor); +		rect.bottom = rect.bottom / (1 << factor); +		rect.right = rect.right / (1 << factor); + +		int objectID = obj->mImageObj->FindObject(obj->mName, obj->mPattern, 0, 0, 255); +		if (objectID < 0) +			return; + +		obj->mImageObj->DrawObject(dest, objectID, rect, factor, -1); +	} +} + +void T2Sprite::AddUpdateRect(T2SpriteObj* obj, POINT pt) { +	RECT rect; + +	SetRect(&rect, pt.x, pt.y, pt.x + obj->mSize.cx, pt.y + obj->mSize.cy); +	UnionRect(&mUpdateRect, &mUpdateRect, &rect); +} diff --git a/src/T2DLL/T2Sprite.h b/src/T2DLL/T2Sprite.h new file mode 100644 index 0000000..13f6372 --- /dev/null +++ b/src/T2DLL/T2Sprite.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2Sprite : private CList<T2SpriteObj *, T2SpriteObj *> { +public: +	T2Sprite(); +	virtual ~T2Sprite(); + +	void AllClear(); +	int NewSprite(T2ImageObj& imageObj, const CString& name, int layer); +	void DeleteSprite(int index); +	void ShowSprite(int index, BOOL show); +	void ChangePattern(int index, int pattern); +	void MoveSprite(int index, POINT pt); +	void UpdateSprite(int index); +	void GetSpriteRect(int index, RECT& outRect); +	void GetUpdateRect(RECT* outRect, int factor); +	void DrawLayer(T2BitImage* dest, int layer, int factor); +	void DrawSprite(T2BitImage* dest, T2SpriteObj* obj, int factor); + +private: +	T2SpriteObj* FindObj(int index); +	void AddUpdateRect(T2SpriteObj* obj, POINT pt); + +	RECT mUpdateRect; +}; diff --git a/src/T2DLL/T2SpriteObj.cpp b/src/T2DLL/T2SpriteObj.cpp new file mode 100644 index 0000000..3254758 --- /dev/null +++ b/src/T2DLL/T2SpriteObj.cpp @@ -0,0 +1,11 @@ +#include "T2SpriteObj.h" + +T2SpriteObj::T2SpriteObj() { +	mShowCount = 0; +	mPosition.x = 0; +	mPosition.y = 0; +	mPattern = 0; +} + +T2SpriteObj::~T2SpriteObj() { +} diff --git a/src/T2DLL/T2SpriteObj.h b/src/T2DLL/T2SpriteObj.h new file mode 100644 index 0000000..a32c648 --- /dev/null +++ b/src/T2DLL/T2SpriteObj.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2SpriteObj { +public: +	T2SpriteObj(); +	~T2SpriteObj(); + +	T2ImageObj *mImageObj; +	CString mName; +	int mIndex; +	POINT mPosition; +	int mShowCount; +	SIZE mSize; +	int mPattern; +	int mLayer; +}; diff --git a/src/T2DLL/T2StairModule.cpp b/src/T2DLL/T2StairModule.cpp new file mode 100644 index 0000000..3a63e43 --- /dev/null +++ b/src/T2DLL/T2StairModule.cpp @@ -0,0 +1,19 @@ +#include "T2StairModule.h" + +T2StairModule::T2StairModule() { +} + +/*virtual*/ T2StairModule::~T2StairModule() { +} + +void T2StairModule::MoverIDChanged(unsigned int) { +} + +/*virtual*/ void T2StairModule::RemoveContents(T2TowerDoc*) { +} + +/*virtual*/ void T2StairModule::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2StairModule::SaveSelf(T2Archive&) { +} diff --git a/src/T2DLL/T2StairModule.h b/src/T2DLL/T2StairModule.h new file mode 100644 index 0000000..ae2cac9 --- /dev/null +++ b/src/T2DLL/T2StairModule.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +class T2StairModule { +public: +	T2StairModule(); +	virtual ~T2StairModule(); +	void MoverIDChanged(unsigned int); +	virtual void RemoveContents(T2TowerDoc*); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); + +public: +	void SetModuleRect(const RECT&) {} +	void GetModuleRect(RECT&) {} +	int GetExtraSize() {} +	T2StairModule(const T2StairModule&) {} +	T2StairModule& operator=(const T2StairModule&) {} +}; diff --git a/src/T2DLL/T2StairModuleList.cpp b/src/T2DLL/T2StairModuleList.cpp new file mode 100644 index 0000000..4f99087 --- /dev/null +++ b/src/T2DLL/T2StairModuleList.cpp @@ -0,0 +1,28 @@ +#include "T2StairModuleList.h" + +T2StairModuleList::T2StairModuleList() { +} + +/*virtual*/ T2StairModuleList::~T2StairModuleList() { +} + +void T2StairModuleList::AddModule(int, const RECT&) { +} + +void T2StairModuleList::AddModule(T2TowerDoc*, const RECT&, int) { +} + +int T2StairModuleList::GetIndex(int, ERequestUpDown) const { +} + +void T2StairModuleList::Union(T2MoverModuleList*, unsigned int) { +} + +/*virtual*/ T2MoverModule* T2StairModuleList::ConstructModule() { +} + +/*virtual*/ void T2StairModuleList::Read(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ int T2StairModuleList::GetModuleCount() const { +} diff --git a/src/T2DLL/T2StairModuleList.h b/src/T2DLL/T2StairModuleList.h new file mode 100644 index 0000000..b93b9a5 --- /dev/null +++ b/src/T2DLL/T2StairModuleList.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" + +class T2StairModuleList { +public: +	T2StairModuleList(); +	virtual ~T2StairModuleList(); +	void AddModule(int, const RECT&); +	void AddModule(T2TowerDoc*, const RECT&, int); +private: +	int GetIndex(int, ERequestUpDown) const; +public: +	void Union(T2MoverModuleList*, unsigned int); +	virtual T2MoverModule* ConstructModule(); +	virtual void Read(T2Archive&, T2TowerDoc*); +	virtual int GetModuleCount() const; + +protected: +	virtual unsigned long GetMMClassID() {} +public: +	T2StairModuleList(const T2StairModuleList&) {} +	T2StairModuleList& operator=(const T2StairModuleList&) {} +}; diff --git a/src/T2DLL/T2StewardDialog.cpp b/src/T2DLL/T2StewardDialog.cpp new file mode 100644 index 0000000..74c6b0d --- /dev/null +++ b/src/T2DLL/T2StewardDialog.cpp @@ -0,0 +1,13 @@ +#include "T2StewardDialog.h" + +T2StewardDialog::T2StewardDialog(T2TowerDoc*, HINSTANCE, CString&, int) { +} + +/*virtual*/ int T2StewardDialog::OnT2DialogCommand(unsigned int, long) { +} + +/*static*/ void T2StewardDialog::MessageBoxA(const char*, const char*) { +} + +/*static*/ int T2StewardDialog::MessageBoxYN(const char*, const char*) { +} diff --git a/src/T2DLL/T2StewardDialog.h b/src/T2DLL/T2StewardDialog.h new file mode 100644 index 0000000..b10d4a7 --- /dev/null +++ b/src/T2DLL/T2StewardDialog.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2StewardDialog { +public: +	T2StewardDialog(T2TowerDoc*, HINSTANCE, CString&, int); +	virtual int OnT2DialogCommand(unsigned int, long); +	static void MessageBoxA(const char*, const char*); +	static int MessageBoxYN(const char*, const char*); + +	virtual ~T2StewardDialog() {} +}; diff --git a/src/T2DLL/T2StopInfoArray.cpp b/src/T2DLL/T2StopInfoArray.cpp new file mode 100644 index 0000000..689e167 --- /dev/null +++ b/src/T2DLL/T2StopInfoArray.cpp @@ -0,0 +1,52 @@ +#include "T2StopInfoArray.h" + +T2StopInfoArray::T2StopInfoArray() { +} + +/*virtual*/ T2StopInfoArray::~T2StopInfoArray() { +} + +void T2StopInfoArray::Init(int) { +} + +void T2StopInfoArray::AllClear() { +} + +void T2StopInfoArray::Expand(EEquipPos, int) { +} + +int T2StopInfoArray::IsStopPos(int, ERequestUpDown) { +} + +int T2StopInfoArray::IsOnStopPos(int, ERequestUpDown) { +} + +int T2StopInfoArray::IsOffStopPos(int, ERequestUpDown) { +} + +void T2StopInfoArray::SetOnStop(int, ERequestUpDown) { +} + +void T2StopInfoArray::SetOffStop(int, ERequestUpDown) { +} + +void T2StopInfoArray::ClearOnStop(int, ERequestUpDown) { +} + +void T2StopInfoArray::ClearOffStop(int, ERequestUpDown) { +} + +char T2StopInfoArray::GetStopAt(int, ERequestUpDown) { +} + +void T2StopInfoArray::SetStopAt(int, ERequestUpDown, char) { +} + +int T2StopInfoArray::GetIndex(int, ERequestUpDown) const { +} + +/*static*/ T2StopInfoArray* T2StopInfoArray::ReadStopInfoArray(T2Archive&) { +} + +/*static*/ void T2StopInfoArray::WriteStopInfoArray(T2StopInfoArray*, T2Archive&) { +} diff --git a/src/T2DLL/T2StopInfoArray.h b/src/T2DLL/T2StopInfoArray.h new file mode 100644 index 0000000..d42ef9e --- /dev/null +++ b/src/T2DLL/T2StopInfoArray.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" + +class T2StopInfoArray { +public: +	T2StopInfoArray(); +	virtual ~T2StopInfoArray(); +	void Init(int); +	void AllClear(); +	void Expand(EEquipPos, int); +	int IsStopPos(int, ERequestUpDown); +	int IsOnStopPos(int, ERequestUpDown); +	int IsOffStopPos(int, ERequestUpDown); +	void SetOnStop(int, ERequestUpDown); +	void SetOffStop(int, ERequestUpDown); +	void ClearOnStop(int, ERequestUpDown); +	void ClearOffStop(int, ERequestUpDown); +	char GetStopAt(int, ERequestUpDown); +	void SetStopAt(int, ERequestUpDown, char); +	int GetIndex(int, ERequestUpDown) const; +	static T2StopInfoArray* ReadStopInfoArray(T2Archive&); +	static void WriteStopInfoArray(T2StopInfoArray*, T2Archive&); + +	T2StopInfoArray(const T2StopInfoArray&) {} +	T2StopInfoArray& operator=(const T2StopInfoArray&) {} +}; diff --git a/src/T2DLL/T2SubPlugin.cpp b/src/T2DLL/T2SubPlugin.cpp new file mode 100644 index 0000000..fbdbe01 --- /dev/null +++ b/src/T2DLL/T2SubPlugin.cpp @@ -0,0 +1,68 @@ +#include "CResFile.h" +#include "T2BitImage.h" +#include "T2ImageObj.h" +#include "T2SubPlugin.h" + +T2SubPlugin::T2SubPlugin(DWORD type, T2PluginSpecifier& specifier) +	: CResourcePlugin(type, specifier) +{ +	mDupCustomerTableDefRes = false; +	mTieup = 0; +	mTitle[0] = 0; +	mTieup = NULL; +	mOpenTime = 0; +	mCloseTime = 0; +	mBitImage = NULL; +	mImageObj = NULL; +} + +/*virtual*/ T2SubPlugin::~T2SubPlugin() { +	if (mTieup) +		delete mTieup; +	if (mBitImage) +		delete mBitImage; +	if (mImageObj) +		delete mImageObj; +} + +int T2SubPlugin::IsTieupFinish() { +	int result = false; + +	if (mTieup) { +		CTime now = CTime::GetTickCount(); +		if (*mTieup < now) +			result = true; +	} + +	return result; +} + +/*virtual*/ void T2SubPlugin::GetTitle(CString& outStr) { +	outStr = mTitle; +} + +/*virtual*/ void T2SubPlugin::LoadRsrcFromStream(CResFile& resFile) { +	resFile >> mTitle; + +	unsigned int t; +	resFile >> t; +	if (t != 0) { +		int year = (t >> 28) & 0xF; +		year *= 10; +		year += (t >> 24) & 0xF; +		year *= 10; +		year += (t >> 20) & 0xF; +		year *= 10; +		year += (t >> 16) & 0xF; + +		int month = (t >> 12) & 0xF; +		month *= 10; +		month += (t >> 8) & 0xF; + +		int day = (t >> 4) & 0xF; +		day *= 10; +		day += (t & 0xF) + 1; + +		mTieup = new CTime(year, month, day, 0, 0, 0); +	} +} diff --git a/src/T2DLL/T2SubPlugin.h b/src/T2DLL/T2SubPlugin.h new file mode 100644 index 0000000..9b6a809 --- /dev/null +++ b/src/T2DLL/T2SubPlugin.h @@ -0,0 +1,36 @@ +#pragma once +#include "common.h" +#include "CResourcePlugin.h" + +class T2SubPlugin : public CResourcePlugin { +public: +	T2SubPlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~T2SubPlugin(); +	virtual unsigned long GetPluginStyle() { return 'SPlg'; } +	virtual void GetTitle(CString& outStr); +	virtual int GetBindTime() { return 1; } +	virtual void GlobalData(T2GlobalData*) {} +	virtual unsigned long LoadSelf() { return 0; } + +	int IsTieupFinish(); +	int IsTieup() { return mTieup != NULL; } + +	unsigned int GetOpenTime() const { return mOpenTime; } +	void SetOpenTime(unsigned int t) { mOpenTime = t; } +	unsigned int GetCloseTime() const { return mCloseTime; } +	void SetCloseTime(unsigned int t) { mCloseTime = t; } +	int DupCustomerTableDefRes() { return mDupCustomerTableDefRes; } +	T2ImageObj* GetImageObj() { return mImageObj; } + +protected: +	virtual void LoadRsrcFromStream(CResFile& resFile); + +	int m6C; // unknown +	char mTitle[64]; +	CTime *mTieup; +	int mDupCustomerTableDefRes; +	unsigned int mOpenTime; +	unsigned int mCloseTime; +	T2BitImage *mBitImage; +	T2ImageObj *mImageObj; +}; diff --git a/src/T2DLL/T2TempPluginComparator.cpp b/src/T2DLL/T2TempPluginComparator.cpp new file mode 100644 index 0000000..e3ff485 --- /dev/null +++ b/src/T2DLL/T2TempPluginComparator.cpp @@ -0,0 +1,13 @@ +#include "T2TempPluginComparator.h" + +/*virtual*/ int T2TempPluginComparator::Compare(const void*, const void*, unsigned int, unsigned int) const { +} + +/*virtual*/ int T2TempPluginComparator::IsEqualTo(const void*, const void*, unsigned int, unsigned int) const { +} + +/*static*/ T2TempPluginComparator* T2TempPluginComparator::GetComparator() { +} + +/*static*/ T2TempPluginComparator* T2TempPluginComparator::sT2TempPluginComparator { +} diff --git a/src/T2DLL/T2TempPluginComparator.h b/src/T2DLL/T2TempPluginComparator.h new file mode 100644 index 0000000..028c6dd --- /dev/null +++ b/src/T2DLL/T2TempPluginComparator.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2TempPluginComparator { +public: +	virtual int Compare(const void*, const void*, unsigned int, unsigned int) const; +	virtual int IsEqualTo(const void*, const void*, unsigned int, unsigned int) const; +	static T2TempPluginComparator* GetComparator(); +protected: +	static T2TempPluginComparator* sT2TempPluginComparator; + +public: +	T2TempPluginComparator() {} +	virtual ~T2TempPluginComparator() {} +	T2TempPluginComparator(const T2TempPluginComparator&) {} +	T2TempPluginComparator& operator=(const T2TempPluginComparator&) {} +}; diff --git a/src/T2DLL/T2TemplatePlugin.cpp b/src/T2DLL/T2TemplatePlugin.cpp new file mode 100644 index 0000000..4810b87 --- /dev/null +++ b/src/T2DLL/T2TemplatePlugin.cpp @@ -0,0 +1,17 @@ +#include "T2TemplatePlugin.h" + +T2TemplatePlugin::T2TemplatePlugin(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile, CProgramPlugin* plugin) +	: CDefRsrcPlugin(type, specifier, resFile) +{ +	mPlugin = plugin; +} + +/*virtual*/ T2TemplatePlugin::~T2TemplatePlugin() { +} + +/*virtual*/ int T2TemplatePlugin::InitObject(T2Object*) { +	return true; +} + +/*virtual*/ void T2TemplatePlugin::LoadSound(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2TemplatePlugin.h b/src/T2DLL/T2TemplatePlugin.h new file mode 100644 index 0000000..5ea32e8 --- /dev/null +++ b/src/T2DLL/T2TemplatePlugin.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" +#include "CDefRsrcPlugin.h" + +class T2TemplatePlugin : public CDefRsrcPlugin { +public: +	T2TemplatePlugin(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile, CProgramPlugin* plugin); +	virtual ~T2TemplatePlugin(); +	virtual int GetSortKey() { return 0; } +	virtual int InitObject(T2Object*); +	virtual void LoadSound(T2TowerDoc*); + +	CProgramPlugin* GetPlugin() { return mPlugin; } + +protected: +	CProgramPlugin *mPlugin; +}; diff --git a/src/T2DLL/T2TemplatePluginDB.cpp b/src/T2DLL/T2TemplatePluginDB.cpp new file mode 100644 index 0000000..4a62bc5 --- /dev/null +++ b/src/T2DLL/T2TemplatePluginDB.cpp @@ -0,0 +1,19 @@ +#include "T2TemplatePluginDB.h" + +T2TemplatePluginDB::T2TemplatePluginDB() { +} + +/*virtual*/ T2TemplatePluginDB::~T2TemplatePluginDB() { +} + +void T2TemplatePluginDB::Regist(T2TemplatePlugin*) { +} + +void T2TemplatePluginDB::Add(T2TemplatePluginList*) { +} + +T2TemplatePluginList* T2TemplatePluginDB::GetTemplatePluginList(unsigned long) { +} + +T2TenantDef* T2TemplatePluginDB::FindFloor() { +} diff --git a/src/T2DLL/T2TemplatePluginDB.h b/src/T2DLL/T2TemplatePluginDB.h new file mode 100644 index 0000000..ae350ff --- /dev/null +++ b/src/T2DLL/T2TemplatePluginDB.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2TemplatePluginDB { +public: +	T2TemplatePluginDB(); +	virtual ~T2TemplatePluginDB(); +	void Regist(T2TemplatePlugin*); +	void Add(T2TemplatePluginList*); +	T2TemplatePluginList* GetTemplatePluginList(unsigned long); +	T2TenantDef* FindFloor(); + +	T2TemplatePluginDB(const T2TemplatePluginDB&) {} +	T2TemplatePluginDB& operator=(const T2TemplatePluginDB&) {} +}; diff --git a/src/T2DLL/T2TemplatePluginList.cpp b/src/T2DLL/T2TemplatePluginList.cpp new file mode 100644 index 0000000..c3063a2 --- /dev/null +++ b/src/T2DLL/T2TemplatePluginList.cpp @@ -0,0 +1,46 @@ +#include "T2TemplatePluginList.h" + +T2TemplatePluginList::T2TemplatePluginList(unsigned long) { +} + +/*virtual*/ T2TemplatePluginList::~T2TemplatePluginList() { +} + +void T2TemplatePluginList::AllClear() { +} + +void T2TemplatePluginList::Regist(T2TemplatePlugin*) { +} + +void T2TemplatePluginList::Add(T2TemplatePlugin*) { +} + +unsigned int T2TemplatePluginList::GetItemCount() { +} + +T2TemplatePlugin* T2TemplatePluginList::GetItemAt(int) { +} + +T2TenantDef* T2TemplatePluginList::FindFloor() { +} + +T2TenantDef* T2TemplatePluginList::FindTenantDef(int) { +} + +T2MoverDef* T2TemplatePluginList::FindMoverDef(int) { +} + +T2OuterObjDef* T2TemplatePluginList::FindOutObjDef(int) { +} + +T2PeopleDef* T2TemplatePluginList::FindPeopleDef(int) { +} + +T2SilhouetteDef* T2TemplatePluginList::FindSilhouette(int) { +} + +int T2TemplatePluginList::CalcCategoryCount() { +} + +void T2TemplatePluginList::DispatchIdle(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2TemplatePluginList.h b/src/T2DLL/T2TemplatePluginList.h new file mode 100644 index 0000000..c22c68b --- /dev/null +++ b/src/T2DLL/T2TemplatePluginList.h @@ -0,0 +1,23 @@ +#pragma once +#include "common.h" + +class T2TemplatePluginList { +public: +	T2TemplatePluginList(unsigned long); +	virtual ~T2TemplatePluginList(); +	void AllClear(); +	void Regist(T2TemplatePlugin*); +	void Add(T2TemplatePlugin*); +	unsigned int GetItemCount(); +	T2TemplatePlugin* GetItemAt(int); +	T2TenantDef* FindFloor(); +	T2TenantDef* FindTenantDef(int); +	T2MoverDef* FindMoverDef(int); +	T2OuterObjDef* FindOutObjDef(int); +	T2PeopleDef* FindPeopleDef(int); +	T2SilhouetteDef* FindSilhouette(int); +	int CalcCategoryCount(); +	void DispatchIdle(T2TowerDoc*); + +	unsigned long GetPluginType() { return 0; } +}; diff --git a/src/T2DLL/T2Tenant.cpp b/src/T2DLL/T2Tenant.cpp new file mode 100644 index 0000000..5d36e88 --- /dev/null +++ b/src/T2DLL/T2Tenant.cpp @@ -0,0 +1,316 @@ +#include "T2Tenant.h" + +T2Tenant::T2Tenant() { +} + +/*virtual*/ T2Tenant::~T2Tenant() { +} + +unsigned int T2Tenant::GetFloorID(int) { +} + +void T2Tenant::SetFloorID(T2FloorInfo*) { +} + +/*virtual*/ PROCCODE T2Tenant::DoDestruct(T2TowerDoc*, POINT, RECT&) { +} + +void T2Tenant::AddPopulation(T2People*) { +} + +void T2Tenant::SubPopulation(T2People*) { +} + +/*virtual*/ int T2Tenant::Enter(CLink*) { +} + +/*virtual*/ int T2Tenant::Leave(CLink*) { +} + +void T2Tenant::EnterTenant(T2TowerDoc*, T2People*) { +} + +void T2Tenant::LeaveTenant(T2TowerDoc*, T2People*) { +} + +/*virtual*/ void T2Tenant::Draw(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ void T2Tenant::DrawSelf(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ unsigned int T2Tenant::Idle(T2TowerDoc*) { +} + +/*virtual*/ void T2Tenant::AddCEMoverID(const T2FloorInfo*, POINT, unsigned int) { +} + +int T2Tenant::InitTenant(T2TenantDef*, const RECT&, unsigned int) { +} + +/*virtual*/ void T2Tenant::LoadSelf(T2Archive&, T2TowerDoc*) { +} + +/*virtual*/ void T2Tenant::SaveSelf(T2Archive&) { +} + +/*virtual*/ unsigned int T2Tenant::GetEntranceFloorID() { +} + +POINT T2Tenant::GetEntrancePt() const { +} + +/*virtual*/ unsigned int T2Tenant::GetExitFloorID() { +} + +POINT T2Tenant::GetExitPt() { +} + +T2People* T2Tenant::GetFirstCustomer() const { +} + +int T2Tenant::GetBelongCapacity() { +} + +int T2Tenant::IsTherePeople(T2People*) { +} + +void T2Tenant::StartBuild() { +} + +void T2Tenant::UpdatePatternIndex() { +} + +void T2Tenant::UpdatePatternIndex(int) { +} + +int T2Tenant::GetNumOfPattern() const { +} + +int T2Tenant::CollectCustomerFromPool(T2TowerDoc*, T2TenantMemberTableDef*, unsigned int, T2Tenant*) { +} + +int T2Tenant::CollectCustomerFromTenant(T2TowerDoc*, T2TenantMemberTableDef*, unsigned int) { +} + +int T2Tenant::CollectCustomerFromFloor(T2TowerDoc*, T2TenantMemberTableDef*, unsigned int) { +} + +void T2Tenant::CollectCustomer(T2TowerDoc*, T2Tenant*) { +} + +void T2Tenant::CollectCustomer(T2TowerDoc*, int) { +} + +int T2Tenant::CollectEmployee(T2TowerDoc*) { +} + +void T2Tenant::RegistBelongPeople(T2People*) { +} + +int T2Tenant::CalcInMoney() const { +} + +void T2Tenant::EnterCustomer(T2People*, int) { +} + +int T2Tenant::IsBelongPeople(T2People*) const { +} + +void T2Tenant::PushOutPeople(T2TowerDoc*, T2People*) { +} + +void T2Tenant::PushOutAll(T2TowerDoc*) { +} + +void T2Tenant::PushOutAllCustomer(T2TowerDoc*) { +} + +int T2Tenant::GetPriceIndex() const { +} + +void T2Tenant::DuplicateBelongPeople(T2TowerDoc*) { +} + +void T2Tenant::RemoveBelongPeople(T2TowerDoc*) { +} + +void T2Tenant::RemovePeople(T2TowerDoc*) { +} + +void T2Tenant::ClearBelongPeople() { +} + +void T2Tenant::ClearBelongPeople(T2People*) { +} + +void T2Tenant::CallBelongPeople(unsigned int) { +} + +T2People* T2Tenant::GetBelongPeople(int) { +} + +T2People* T2Tenant::GetBelongPeopleIn(int) { +} + +void T2Tenant::SetKind() { +} + +int T2Tenant::GetNumOfKind() const { +} + +/*virtual*/ void T2Tenant::SetUsed(int) { +} + +unsigned int T2Tenant::GetRegistID() const { +} + +int T2Tenant::GetEmployeeSearchScore() const { +} + +int T2Tenant::GetCustomerSearchScore() const { +} + +int T2Tenant::IsMoverAvailable() const { +} + +void T2Tenant::RemoveBelongList() { +} + +int T2Tenant::GetQTMovieName(CString) { +} + +void T2Tenant::Destruct(T2TowerDoc*, CRect&) { +} + +void T2Tenant::SetBindTime(T2People*, unsigned int) { +} + +int T2Tenant::SetEstimate(int) { +} + +int T2Tenant::SetPeopleAnime() { +} + +void T2Tenant::SetPeopleAnime(T2People*, int) { +} + +void T2Tenant::PushOutCustomer(T2TowerDoc*, int) { +} + +int T2Tenant::GetBelongPeopleIndex(T2People*, int&) const { +} + +int T2Tenant::SetPeopleToSleep() { +} + +void T2Tenant::SetAllPeopleToSleep() { +} + +void T2Tenant::UnionFloorPeople(T2Tenant*) { +} + +int T2Tenant::IsWithinSearchRange(T2TowerDoc*, T2Tenant*) const { +} + +void T2Tenant::SetMoviePlugin(T2SubPlugin*) { +} + +void T2Tenant::SetHallEventPlugin(T2HallEventPlugin*) { +} + +int T2Tenant::GetFloorNumber(T2FloorInfo*) const { +} + +int T2Tenant::GetRoomNumber(T2FloorInfo*) const { +} + +void T2Tenant::GetRoomName(T2TowerDoc*, CString&) const { +} + +/*virtual*/ void T2Tenant::PlaySoundA(T2TowerDoc*, int, unsigned int, unsigned int) const { +} + +int T2Tenant::IsEmptyParking() const { +} + +T2People* T2Tenant::FindPeople(POINT) const { +} + +int T2Tenant::InitBelongList() { +} + +void T2Tenant::DrawViewModeColor(T2TowerDoc*) const { +} + +void T2Tenant::DrawTrafficColor(T2TowerDoc*, const CRect&) const { +} + +/*static*/ void T2Tenant::DrawColorMesh(T2TowerDoc*, const CRect&, int) { +} + +void T2Tenant::IncPeopleEstimate(int) { +} + +int T2Tenant::CalcEstimateColor() const { +} + +int T2Tenant::CollectEmployeeFromPool(T2TowerDoc*, T2TenantMemberTableDef*) { +} + +int T2Tenant::IsRegist() const { +} + +unsigned int T2Tenant::CheckRouteFromPool(T2TowerDoc*, unsigned int) const { +} + +T2TenantMemberTableDef* T2Tenant::GetCustomerTableDef(int) const { +} + +int T2Tenant::UpdateResidencialEstimate(T2TowerDoc*) { +} + +void T2Tenant::BreakoutEmergency(T2TowerDoc*) { +} + +void T2Tenant::BurntDown(T2TowerDoc*) { +} + +void T2Tenant::RecoverRelatedTenantList(T2RegistedTenantDB*) { +} + +int T2Tenant::GetTotalBelong() const { +} + +int T2Tenant::CanReplaceWorker() const { +} + +int T2Tenant::ReplaceWorker(T2TowerDoc*, T2People*) { +} + +void T2Tenant::CallEmployee(unsigned int) { +} + +int T2Tenant::DecideResidencialEstimation(T2TowerDoc*) { +} + +int T2Tenant::UpdateCommercialEstimate() { +} + +int T2Tenant::CalcProfitEstimate() const { +} + +void T2Tenant::GetMerchandise(int&, int*&) { +} + +T2TenantMemberTableDef* T2Tenant::GetMerchandiseTMT() { +} + +void T2Tenant::SetMerchandise(int, int*) { +} + +void T2Tenant::SetRelatedTenant(T2TowerDoc*, unsigned int) { +} + +/*virtual*/ void T2Tenant::BuildStart(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2Tenant.h b/src/T2DLL/T2Tenant.h new file mode 100644 index 0000000..fd2a6fa --- /dev/null +++ b/src/T2DLL/T2Tenant.h @@ -0,0 +1,188 @@ +#pragma once +#include "common.h" + +class T2Tenant { +public: +	T2Tenant(); +	virtual ~T2Tenant(); +	unsigned int GetFloorID(int); +	void SetFloorID(T2FloorInfo*); +	virtual PROCCODE DoDestruct(T2TowerDoc*, POINT, RECT&); +protected: +	void AddPopulation(T2People*); +	void SubPopulation(T2People*); +public: +	virtual int Enter(CLink*); +	virtual int Leave(CLink*); +	void EnterTenant(T2TowerDoc*, T2People*); +	void LeaveTenant(T2TowerDoc*, T2People*); +	virtual void Draw(T2TowerDoc*, const RECT&); +protected: +	virtual void DrawSelf(T2TowerDoc*, const RECT&); +public: +	virtual unsigned int Idle(T2TowerDoc*); +	virtual void AddCEMoverID(const T2FloorInfo*, POINT, unsigned int); +	int InitTenant(T2TenantDef*, const RECT&, unsigned int); +protected: +	virtual void LoadSelf(T2Archive&, T2TowerDoc*); +	virtual void SaveSelf(T2Archive&); +public: +	virtual unsigned int GetEntranceFloorID(); +	POINT GetEntrancePt() const; +	virtual unsigned int GetExitFloorID(); +	POINT GetExitPt(); +	T2People* GetFirstCustomer() const; +	int GetBelongCapacity(); +	int IsTherePeople(T2People*); +	void StartBuild(); +	void UpdatePatternIndex(); +	void UpdatePatternIndex(int); +	int GetNumOfPattern() const; +protected: +	int CollectCustomerFromPool(T2TowerDoc*, T2TenantMemberTableDef*, unsigned int, T2Tenant*); +	int CollectCustomerFromTenant(T2TowerDoc*, T2TenantMemberTableDef*, unsigned int); +	int CollectCustomerFromFloor(T2TowerDoc*, T2TenantMemberTableDef*, unsigned int); +public: +	void CollectCustomer(T2TowerDoc*, T2Tenant*); +	void CollectCustomer(T2TowerDoc*, int); +	int CollectEmployee(T2TowerDoc*); +	void RegistBelongPeople(T2People*); +	int CalcInMoney() const; +	void EnterCustomer(T2People*, int); +	int IsBelongPeople(T2People*) const; +	void PushOutPeople(T2TowerDoc*, T2People*); +	void PushOutAll(T2TowerDoc*); +	void PushOutAllCustomer(T2TowerDoc*); +	int GetPriceIndex() const; +protected: +	void DuplicateBelongPeople(T2TowerDoc*); +	void RemoveBelongPeople(T2TowerDoc*); +public: +	void RemovePeople(T2TowerDoc*); +	void ClearBelongPeople(); +	void ClearBelongPeople(T2People*); +	void CallBelongPeople(unsigned int); +	T2People* GetBelongPeople(int); +	T2People* GetBelongPeopleIn(int); +	void SetKind(); +protected: +	int GetNumOfKind() const; +public: +	virtual void SetUsed(int); +	unsigned int GetRegistID() const; +	int GetEmployeeSearchScore() const; +	int GetCustomerSearchScore() const; +	int IsMoverAvailable() const; +	void RemoveBelongList(); +	int GetQTMovieName(CString); +	void Destruct(T2TowerDoc*, CRect&); +	void SetBindTime(T2People*, unsigned int); +	int SetEstimate(int); +	int SetPeopleAnime(); +	void SetPeopleAnime(T2People*, int); +	void PushOutCustomer(T2TowerDoc*, int); +	int GetBelongPeopleIndex(T2People*, int&) const; +	int SetPeopleToSleep(); +	void SetAllPeopleToSleep(); +	void UnionFloorPeople(T2Tenant*); +	int IsWithinSearchRange(T2TowerDoc*, T2Tenant*) const; +	void SetMoviePlugin(T2SubPlugin*); +	void SetHallEventPlugin(T2HallEventPlugin*); +	int GetFloorNumber(T2FloorInfo*) const; +	int GetRoomNumber(T2FloorInfo*) const; +	void GetRoomName(T2TowerDoc*, CString&) const; +	virtual void PlaySoundA(T2TowerDoc*, int, unsigned int, unsigned int) const; +	int IsEmptyParking() const; +	T2People* FindPeople(POINT) const; +protected: +	int InitBelongList(); +	void DrawViewModeColor(T2TowerDoc*) const; +	void DrawTrafficColor(T2TowerDoc*, const CRect&) const; +	static void DrawColorMesh(T2TowerDoc*, const CRect&, int); +public: +	void IncPeopleEstimate(int); +	int CalcEstimateColor() const; +protected: +	int CollectEmployeeFromPool(T2TowerDoc*, T2TenantMemberTableDef*); +public: +	int IsRegist() const; +protected: +	unsigned int CheckRouteFromPool(T2TowerDoc*, unsigned int) const; +public: +	T2TenantMemberTableDef* GetCustomerTableDef(int) const; +	int UpdateResidencialEstimate(T2TowerDoc*); +	void BreakoutEmergency(T2TowerDoc*); +	void BurntDown(T2TowerDoc*); +	void RecoverRelatedTenantList(T2RegistedTenantDB*); +	int GetTotalBelong() const; +	int CanReplaceWorker() const; +	int ReplaceWorker(T2TowerDoc*, T2People*); +	void CallEmployee(unsigned int); +	int DecideResidencialEstimation(T2TowerDoc*); +	int UpdateCommercialEstimate(); +	int CalcProfitEstimate() const; +	void GetMerchandise(int&, int*&); +	T2TenantMemberTableDef* GetMerchandiseTMT(); +	void SetMerchandise(int, int*); +	void SetRelatedTenant(T2TowerDoc*, unsigned int); +	virtual void BuildStart(T2TowerDoc*); + +	unsigned int GetResideDay() const {} +	int GetEstimate() const {} +	void SetRelatedTenantID(unsigned int) {} +	unsigned int GetRelatedTenantID() const {} +	int IsSetRelatedTenantID() const {} +	int IsFloor() const {} +	int IsPoolTenant() const {} +	int IsHome() const {} +	int IsConcat() const {} +	int IsPeopleAnime() const {} +	int IsNeedToilet() const {} +	int IsNeedDraw() {} +	int IsTherePeople() const {} +	int IsThereCustomer() const {} +	T2People* GetFirstPeople() const {} +	int IsOpen() const {} +	int WillBeFull() const {} +	int CalcRestCapacity() const {} +	void SetMark(int) {} +	int GetMark() const {} +	int GetBelongCount() const {} +	void ClearWorkCount() {} +	int GetTotalCustomer() const {} +	void ClearTotalCustomer() {} +	void IncTotalCustomer() {} +	T2PeoplePtrList* GetBelongList() const {} +	void SetRelatedTenantList(T2EquipPtrList*) {} +	T2EquipPtrList* GetRelatedTenantList() const {} +	virtual int IsBuildFinish() {} +	int IsFire() {} +	int IsFireproof() const {} +	unsigned int GetTenantNumber() const {} +	void SetTenantNumber(unsigned int) {} +protected: +	int GetConsumptionPower() const {} +public: +	T2Tenant(const T2Tenant&) {} +	T2Tenant& operator=(const T2Tenant&) {} +	virtual void ClearDrawMode() {} +	int IsBind() const {} +	void Bind() {} +	void Unbind() {} +	unsigned int GetOpenTime() const {} +	unsigned int GetCloseTime() const {} +	int GetBindTime() const {} +	T2TenantMemberTableDef* GetEmployeeTableDef() const {} +	int IsFull() const {} +	int GetCustomerCount() const {} +	int GetKindIndex() const {} +	void SetKindIndex(int) {} +	void IncWorkCount() {} +	void DecWorkCount() {} +	int GetWorkCount() const {} +	void ClearReserveCount() {} +	void IncReserveCount(unsigned int) {} +	void DecReserveCount() {} +	int GetReserveCount() const {} +	void CancelReserve() {} +}; diff --git a/src/T2DLL/T2TenantArray.cpp b/src/T2DLL/T2TenantArray.cpp new file mode 100644 index 0000000..e7dfb45 --- /dev/null +++ b/src/T2DLL/T2TenantArray.cpp @@ -0,0 +1,34 @@ +#include "T2TenantArray.h" + +T2TenantArray::T2TenantArray(unsigned int) { +} + +/*virtual*/ T2TenantArray::~T2TenantArray() { +} + +T2Tenant* T2TenantArray::FindUnusedTenant() { +} + +/*virtual*/ void T2TenantArray::DispatchIdle(T2TowerDoc*, int) { +} + +int T2TenantArray::CalcMentenanceCost(T2TowerDoc*) const { +} + +void T2TenantArray::TenantRemoved(unsigned int) { +} + +T2Tenant* T2TenantArray::GetTenantByPID(unsigned long) { +} + +void T2TenantArray::BreakoutEmergency(T2TowerDoc*) { +} + +void T2TenantArray::RecoverRelatedTenantList(T2RegistedTenantDB*) { +} + +void T2TenantArray::Read(T2Archive&, T2TowerDoc*) { +} + +void T2TenantArray::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2TenantArray.h b/src/T2DLL/T2TenantArray.h new file mode 100644 index 0000000..a443c9f --- /dev/null +++ b/src/T2DLL/T2TenantArray.h @@ -0,0 +1,22 @@ +#pragma once +#include "common.h" + +class T2TenantArray { +public: +	T2TenantArray(unsigned int); +	virtual ~T2TenantArray(); +	T2Tenant* FindUnusedTenant(); +	virtual void DispatchIdle(T2TowerDoc*, int); +	int CalcMentenanceCost(T2TowerDoc*) const; +	void TenantRemoved(unsigned int); +	T2Tenant* GetTenantByPID(unsigned long); +	void BreakoutEmergency(T2TowerDoc*); +	void RecoverRelatedTenantList(T2RegistedTenantDB*); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	T2Tenant* GetIndexTenant(int) {} +	T2TenantArray(const T2TenantArray&) {} +	T2TenantArray& operator=(const T2TenantArray&) {} +	void `default constructor closure'() {} +}; diff --git a/src/T2DLL/T2TenantArrayList.cpp b/src/T2DLL/T2TenantArrayList.cpp new file mode 100644 index 0000000..6383c6d --- /dev/null +++ b/src/T2DLL/T2TenantArrayList.cpp @@ -0,0 +1,52 @@ +#include "T2TenantArrayList.h" + +T2TenantArrayList::T2TenantArrayList() { +} + +/*virtual*/ T2TenantArrayList::~T2TenantArrayList() { +} + +void T2TenantArrayList::Add(T2TenantArray*) { +} + +unsigned int T2TenantArrayList::GetItemCount() { +} + +T2TenantArray* T2TenantArrayList::GetItemAt(int) { +} + +T2Tenant* T2TenantArrayList::GetTenantByID(unsigned int) { +} + +T2Tenant* T2TenantArrayList::GetTenantByPID(unsigned long) { +} + +T2Tenant* T2TenantArrayList::FindUnusedTenant() { +} + +void T2TenantArrayList::DispatchIdle(T2TowerDoc*) { +} + +void T2TenantArrayList::TenantRemoved(unsigned int) { +} + +void T2TenantArrayList::BreakoutEmergency(T2TowerDoc*) { +} + +int T2TenantArrayList::CalcMentenanceCost(T2TowerDoc*) const { +} + +LArray* T2TenantArrayList::MakeTenantList(int) { +} + +LArray* T2TenantArrayList::MakeTenantList(int, (__cdecl*)(class, const T2Tenant*, )) { +} + +void T2TenantArrayList::Read(T2Archive&, T2TowerDoc*) { +} + +void T2TenantArrayList::Write(T2Archive&) { +} + +void T2TenantArrayList::RecoverRelatedTenantList(T2RegistedTenantDB*) { +} diff --git a/src/T2DLL/T2TenantArrayList.h b/src/T2DLL/T2TenantArrayList.h new file mode 100644 index 0000000..5405649 --- /dev/null +++ b/src/T2DLL/T2TenantArrayList.h @@ -0,0 +1,26 @@ +#pragma once +#include "common.h" + +class T2TenantArrayList { +public: +	T2TenantArrayList(); +	virtual ~T2TenantArrayList(); +	void Add(T2TenantArray*); +	unsigned int GetItemCount(); +	T2TenantArray* GetItemAt(int); +	T2Tenant* GetTenantByID(unsigned int); +	T2Tenant* GetTenantByPID(unsigned long); +	T2Tenant* FindUnusedTenant(); +	void DispatchIdle(T2TowerDoc*); +	void TenantRemoved(unsigned int); +	void BreakoutEmergency(T2TowerDoc*); +	int CalcMentenanceCost(T2TowerDoc*) const; +	LArray* MakeTenantList(int); +	LArray* MakeTenantList(int, (__cdecl*)(class, const T2Tenant*, )); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); +	void RecoverRelatedTenantList(T2RegistedTenantDB*); + +	T2TenantArrayList(const T2TenantArrayList&) {} +	T2TenantArrayList& operator=(const T2TenantArrayList&) {} +}; diff --git a/src/T2DLL/T2TenantCEArray.cpp b/src/T2DLL/T2TenantCEArray.cpp new file mode 100644 index 0000000..3a67dc2 --- /dev/null +++ b/src/T2DLL/T2TenantCEArray.cpp @@ -0,0 +1,17 @@ +#include "T2TenantCEArray.h" + +T2TenantCEArray::T2TenantCEArray() { +} + +/*virtual*/ T2TenantCEArray::~T2TenantCEArray() { +} + +unsigned int T2TenantCEArray::GetFloorID(int index) { +	unsigned int floorID; +	FetchItemAt(index, &floorID); +	return floorID; +} + +void T2TenantCEArray::SetFloorID(unsigned int floorID) { +	Add(floorID); +} diff --git a/src/T2DLL/T2TenantCEArray.h b/src/T2DLL/T2TenantCEArray.h new file mode 100644 index 0000000..71a00a7 --- /dev/null +++ b/src/T2DLL/T2TenantCEArray.h @@ -0,0 +1,13 @@ +#pragma once +#include "common.h" +#include "T2CrossEquipArray.h" + +class T2TenantCEArray : public T2CrossEquipArray { +public: +	T2TenantCEArray(); +	virtual ~T2TenantCEArray(); +	unsigned int GetFloorID(int); +	void SetFloorID(unsigned int); + +	virtual DWORD GetCEClassID() { return 'TCEA'; } +}; diff --git a/src/T2DLL/T2TenantDef.cpp b/src/T2DLL/T2TenantDef.cpp new file mode 100644 index 0000000..1f3514e --- /dev/null +++ b/src/T2DLL/T2TenantDef.cpp @@ -0,0 +1,67 @@ +#include "T2TenantDef.h" + +T2TenantDef::T2TenantDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldDef*, T2TenantPlugin*) { +} + +/*virtual*/ T2TenantDef::~T2TenantDef() { +} + +/*virtual*/ void T2TenantDef::GetName(CString&) { +} + +/*virtual*/ int T2TenantDef::InitObject(T2Object*) { +} + +/*virtual*/ void T2TenantDef::DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*) const { +} + +/*virtual*/ int T2TenantDef::DrawData(int) { +} + +/*virtual*/ void T2TenantDef::DrawPeople(T2TowerDoc*, T2Equip*) { +} + +/*virtual*/ int T2TenantDef::DrawAttribute(int) { +} + +/*virtual*/ unsigned int T2TenantDef::IdleProc(T2HaveOutViewObject*, T2TowerDoc*) { +} + +/*virtual*/ int T2TenantDef::ChangeStatusOnIdle(T2TowerDoc*, T2Tenant*, int) { +} + +/*virtual*/ AREACHECKCODE T2TenantDef::AreaCheck(T2TowerDoc*, RECT&, unsigned int, int) { +} + +/*virtual*/ int T2TenantDef::CalcPayment(T2TowerDoc*, RECT&, unsigned int) { +} + +/*virtual*/ void T2TenantDef::EnterTenant(T2TowerDoc*, T2Tenant*, T2People*) { +} + +/*virtual*/ void T2TenantDef::LeaveTenant(T2TowerDoc*, T2Tenant*, T2People*) { +} + +/*virtual*/ void T2TenantDef::BuildStartProc(T2TowerDoc*, T2Tenant*) { +} + +/*virtual*/ void T2TenantDef::DoPeopleAnimation(T2TowerDoc*, T2Tenant*) { +} + +/*virtual*/ int T2TenantDef::GetQTMovieName(T2Tenant*, CString&) { +} + +void T2TenantDef::SetCustomerTable(T2SubPlugin*) { +} + +void T2TenantDef::MakeCustomerTableDef(int, const char*) { +} + +float T2TenantDef::CalcNumOfCustomerUnit() { +} + +/*virtual*/ int T2TenantDef::EmergencyProc(T2TowerDoc*, T2Equip*) { +} + +/*virtual*/ int T2TenantDef::CalcMentenanceCostProc(const T2HaveOutViewObject*) const { +} diff --git a/src/T2DLL/T2TenantDef.h b/src/T2DLL/T2TenantDef.h new file mode 100644 index 0000000..0657566 --- /dev/null +++ b/src/T2DLL/T2TenantDef.h @@ -0,0 +1,51 @@ +#pragma once +#include "common.h" + +class T2TenantDef { +public: +	T2TenantDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldDef*, T2TenantPlugin*); +	virtual ~T2TenantDef(); +	virtual void GetName(CString&); +	virtual int InitObject(T2Object*); +	virtual void DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*) const; +	virtual int DrawData(int); +	virtual void DrawPeople(T2TowerDoc*, T2Equip*); +	virtual int DrawAttribute(int); +	virtual unsigned int IdleProc(T2HaveOutViewObject*, T2TowerDoc*); +	virtual int ChangeStatusOnIdle(T2TowerDoc*, T2Tenant*, int); +	virtual AREACHECKCODE AreaCheck(T2TowerDoc*, RECT&, unsigned int, int); +	virtual int CalcPayment(T2TowerDoc*, RECT&, unsigned int); +	virtual void EnterTenant(T2TowerDoc*, T2Tenant*, T2People*); +	virtual void LeaveTenant(T2TowerDoc*, T2Tenant*, T2People*); +	virtual void BuildStartProc(T2TowerDoc*, T2Tenant*); +	virtual void DoPeopleAnimation(T2TowerDoc*, T2Tenant*); +	virtual int GetQTMovieName(T2Tenant*, CString&); +	void SetCustomerTable(T2SubPlugin*); +	void MakeCustomerTableDef(int, const char*); +protected: +	float CalcNumOfCustomerUnit(); +public: +	virtual int EmergencyProc(T2TowerDoc*, T2Equip*); +	virtual int CalcMentenanceCostProc(const T2HaveOutViewObject*) const; + +	virtual int IsTenant() {} +	int IsFloor() {} +	int IsValiableLength() {} +	int IsHome() {} +	int IsConcat() {} +	int IsPeopleAnime() {} +	int GetEntranceV() {} +	int GetEntranceH() {} +	int GetExitV() {} +	int GetExitH() {} +	int GetNumOfPattern() const {} +	int GetNumOfKind() {} +	int GetBelongCapacity() const {} +	unsigned int GetRegistID() const {} +	unsigned int GetDownFlag() const {} +	int GetSenseOfNoise() const {} +	T2PeopleAnimeDef* GetPeopleAnimeDef() const {} +	T2TenantMemberTableDef* GetEmployeeTableDef() const {} +	T2TenantMemberTableDef* GetCustomerTableDef() const {} +	T2TenantDef& operator=(T2TenantDef&) {} +}; diff --git a/src/T2DLL/T2TenantInfoDialog.cpp b/src/T2DLL/T2TenantInfoDialog.cpp new file mode 100644 index 0000000..149de6c --- /dev/null +++ b/src/T2DLL/T2TenantInfoDialog.cpp @@ -0,0 +1,7 @@ +#include "T2TenantInfoDialog.h" + +T2TenantInfoDialog::T2TenantInfoDialog(T2Tenant*) { +} + +/*virtual*/ T2TenantInfoDialog::~T2TenantInfoDialog() { +} diff --git a/src/T2DLL/T2TenantInfoDialog.h b/src/T2DLL/T2TenantInfoDialog.h new file mode 100644 index 0000000..aa68b8b --- /dev/null +++ b/src/T2DLL/T2TenantInfoDialog.h @@ -0,0 +1,11 @@ +#pragma once +#include "common.h" + +class T2TenantInfoDialog { +public: +	T2TenantInfoDialog(T2Tenant*); +	virtual ~T2TenantInfoDialog(); + +	T2Tenant* GetTenant() const {} +	T2TenantDef* GetTenantDef() const {} +}; diff --git a/src/T2DLL/T2TenantMemberDef.cpp b/src/T2DLL/T2TenantMemberDef.cpp new file mode 100644 index 0000000..f06f530 --- /dev/null +++ b/src/T2DLL/T2TenantMemberDef.cpp @@ -0,0 +1,21 @@ +#include "CResFile.h" +#include "T2TenantMemberDef.h" + +T2TenantMemberDef::T2TenantMemberDef() { +} + +/*virtual*/ T2TenantMemberDef::~T2TenantMemberDef() { +} + +void T2TenantMemberDef::Initialize(CResFile* resFile, float mult) { +	*resFile >> mName; +	*resFile >> mDemandType; +	*resFile >> mStartSilhouetteType; +	*resFile >> mEndSilhouetteType; +	*resFile >> mOptionType; +	*resFile >> mPercent; +	*resFile >> mNumOfPeople; + +	if (mult > 0.0f && mPercent > 0) +		mRate = (mPercent * mult) / 100.0f; +} diff --git a/src/T2DLL/T2TenantMemberDef.h b/src/T2DLL/T2TenantMemberDef.h new file mode 100644 index 0000000..215e0f4 --- /dev/null +++ b/src/T2DLL/T2TenantMemberDef.h @@ -0,0 +1,31 @@ +#pragma once +#include "common.h" + +class T2TenantMemberDef { +public: +	T2TenantMemberDef(); +	virtual ~T2TenantMemberDef(); +	void Initialize(CResFile*, float); + +	int GetDemandType() const { return mDemandType; } +	int GetStartSilhouetteType() const { return mStartSilhouetteType; } +	int GetEndSilhouetteType() const { return mEndSilhouetteType; } +	int GetOptionType() const { return mOptionType; } +	unsigned int GetNumOfPeople() const { return mNumOfPeople; } +	void SetNumOfPeople(unsigned int v) { mNumOfPeople = v; } +	float GetRate() const { return mRate; } +	void SetRate(float v) { mRate = v; } +	void GetName(CString& outStr) const { outStr = mName; } +	unsigned int GetPercent() const { return mPercent; } +	void SetPercent(unsigned int v) { mPercent = v; } + +protected: +	char mName[16]; +	int mDemandType; +	int mStartSilhouetteType; +	int mEndSilhouetteType; +	int mOptionType; +	unsigned int mPercent; +	unsigned int mNumOfPeople; +	float mRate; +}; diff --git a/src/T2DLL/T2TenantMemberTableDef.cpp b/src/T2DLL/T2TenantMemberTableDef.cpp new file mode 100644 index 0000000..37a06a1 --- /dev/null +++ b/src/T2DLL/T2TenantMemberTableDef.cpp @@ -0,0 +1,46 @@ +#include "T2TenantMemberTableDef.h" + +T2TenantMemberTableDef::T2TenantMemberTableDef(HINSTANCE, CResFile*, float) { +} + +T2TenantMemberTableDef::T2TenantMemberTableDef(const char*, CResFile*, float) { +} + +/*virtual*/ T2TenantMemberTableDef::~T2TenantMemberTableDef() { +} + +void T2TenantMemberTableDef::Initialize() { +} + +int T2TenantMemberTableDef::GetEconoType() const { +} + +int T2TenantMemberTableDef::IsCheckOnlyFirstEconoType() const { +} + +T2TenantMemberDef* T2TenantMemberTableDef::GetElem(int) const { +} + +int T2TenantMemberTableDef::GetScore(T2PlaceParamDef::EPlace) const { +} + +int T2TenantMemberTableDef::IsCollectFromFloor() const { +} + +int T2TenantMemberTableDef::IsCollectFromPool(T2TowerDoc*) const { +} + +int T2TenantMemberTableDef::IsCollectFromTenant() const { +} + +T2DayParamDef* T2TenantMemberTableDef::MakeDayParamDef(HINSTANCE, int) { +} + +T2DayParamDef* T2TenantMemberTableDef::MakeDayParamDef(const char*, int) { +} + +T2PlaceParamDef* T2TenantMemberTableDef::MakePlaceParamDef(HINSTANCE, int) { +} + +T2PlaceParamDef* T2TenantMemberTableDef::MakePlaceParamDef(const char*, int) { +} diff --git a/src/T2DLL/T2TenantMemberTableDef.h b/src/T2DLL/T2TenantMemberTableDef.h new file mode 100644 index 0000000..e189d59 --- /dev/null +++ b/src/T2DLL/T2TenantMemberTableDef.h @@ -0,0 +1,30 @@ +#pragma once +#include "common.h" + +class T2TenantMemberTableDef { +public: +	T2TenantMemberTableDef(HINSTANCE, CResFile*, float); +	T2TenantMemberTableDef(const char*, CResFile*, float); +	virtual ~T2TenantMemberTableDef(); +private: +	void Initialize(); +public: +	int GetEconoType() const; +	int IsCheckOnlyFirstEconoType() const; +	T2TenantMemberDef* GetElem(int) const; +	int GetScore(T2PlaceParamDef::EPlace) const; +	int IsCollectFromFloor() const; +	int IsCollectFromPool(T2TowerDoc*) const; +	int IsCollectFromTenant() const; +protected: +	T2DayParamDef* MakeDayParamDef(HINSTANCE, int); +	T2DayParamDef* MakeDayParamDef(const char*, int); +	T2PlaceParamDef* MakePlaceParamDef(HINSTANCE, int); +	T2PlaceParamDef* MakePlaceParamDef(const char*, int); + +public: +	T2TenantMemberTableDef(const T2TenantMemberTableDef&) {} +	T2TenantMemberTableDef& operator=(const T2TenantMemberTableDef&) {} +	int GetNumOfElem() const {} +	unsigned int GetSpecialFlag() const {} +}; diff --git a/src/T2DLL/T2TenantPlugin.cpp b/src/T2DLL/T2TenantPlugin.cpp new file mode 100644 index 0000000..428b111 --- /dev/null +++ b/src/T2DLL/T2TenantPlugin.cpp @@ -0,0 +1,19 @@ +#include "T2TenantPlugin.h" + +T2TenantPlugin::T2TenantPlugin(unsigned long, T2PluginSpecifier&) { +} + +/*virtual*/ T2TenantPlugin::~T2TenantPlugin() { +} + +int T2TenantPlugin::TestLoadAllDefRsrcPlugin() { +} + +int T2TenantPlugin::LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*) { +} + +unsigned long T2TenantPlugin::GetShopPluginType() { +} + +void T2TenantPlugin::LoadT2TenantDef(T2WorldDef*) { +} diff --git a/src/T2DLL/T2TenantPlugin.h b/src/T2DLL/T2TenantPlugin.h new file mode 100644 index 0000000..0519a81 --- /dev/null +++ b/src/T2DLL/T2TenantPlugin.h @@ -0,0 +1,16 @@ +#pragma once +#include "common.h" + +class T2TenantPlugin { +public: +	T2TenantPlugin(unsigned long, T2PluginSpecifier&); +	virtual ~T2TenantPlugin(); +	int TestLoadAllDefRsrcPlugin(); +	int LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*); +	unsigned long GetShopPluginType(); +private: +	void LoadT2TenantDef(T2WorldDef*); + +public: +	T2TenantPlugin& operator=(T2TenantPlugin&) {} +}; diff --git a/src/T2DLL/T2Terrorist.cpp b/src/T2DLL/T2Terrorist.cpp new file mode 100644 index 0000000..6d3e7ac --- /dev/null +++ b/src/T2DLL/T2Terrorist.cpp @@ -0,0 +1,28 @@ +#include "T2Terrorist.h" + +T2Terrorist::T2Terrorist(T2TowerEvent*, CResFile*, int) { +} + +/*virtual*/ T2Terrorist::~T2Terrorist() { +} + +/*virtual*/ int T2Terrorist::Start(T2TowerDoc*) { +} + +void T2Terrorist::SetupSound() { +} + +void T2Terrorist::DisposeSound() { +} + +/*virtual*/ int T2Terrorist::Exec(T2TowerDoc*) { +} + +/*virtual*/ void T2Terrorist::StopEvent(T2TowerDoc*) { +} + +/*virtual*/ unsigned int T2Terrorist::DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*) { +} + +/*virtual*/ void T2Terrorist::SetupDialog(T2Dialog*) { +} diff --git a/src/T2DLL/T2Terrorist.h b/src/T2DLL/T2Terrorist.h new file mode 100644 index 0000000..1549258 --- /dev/null +++ b/src/T2DLL/T2Terrorist.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2Terrorist { +public: +	T2Terrorist(T2TowerEvent*, CResFile*, int); +	virtual ~T2Terrorist(); +	virtual int Start(T2TowerDoc*); +protected: +	void SetupSound(); +	void DisposeSound(); +public: +	virtual int Exec(T2TowerDoc*); +	virtual void StopEvent(T2TowerDoc*); +	virtual unsigned int DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*); +protected: +	virtual void SetupDialog(T2Dialog*); + +public: +	virtual unsigned long GetID() {} +	int IsBombHideRoom(unsigned int) {} +	T2Terrorist(const T2Terrorist&) {} +	T2Terrorist& operator=(const T2Terrorist&) {} +}; diff --git a/src/T2DLL/T2ToolDef.cpp b/src/T2DLL/T2ToolDef.cpp new file mode 100644 index 0000000..c57672f --- /dev/null +++ b/src/T2DLL/T2ToolDef.cpp @@ -0,0 +1,166 @@ +#include "CFilePluginList.h" +#include "CResFile.h" +#include "CResourcePlugin.h" +#include "T2AdvertisePlugin.h" +#include "T2BitImage.h" +#include "T2HaveOutViewObject.h" +#include "T2ImageObj.h" +#include "T2ToolDef.h" +#include "T2ToolPlugin.h" +#include "UT2Coordinate.h" + +T2ToolDef::T2ToolDef(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile, T2WorldDef* worldDef, T2ToolPlugin* plugin) +	: T2TemplatePlugin(type, specifier, resFile, plugin) +{ +	mToolIcon = new T2BitImage(mModuleHandle, 100, 1); +	// TODO: this needs to come from T2WorldDef +	mImageObj->AddObject(mModuleHandle, 100, mToolIcon); + +	mEC = new T2BitImage(mModuleHandle, 1000, 1); +	mImageObj->AddObject(mModuleHandle, 1000, mEC); + +	m114 = NULL; +	m118 = 0; + +	mSettlement = 0; +	mCurBuildCount = 0; +	mMaxBuildCount = 0; +	mSubPluginList = NULL; + +	unsigned long tmp; + +	*resFile >> mToolType; +	*resFile >> mWidth; +	*resFile >> mHeight; +	*resFile >> mLevel; +	*resFile >> mAttribute; +	*resFile >> mCategoryCommentString; +	*resFile >> mCategoryName; +	*resFile >> mCategoryNo; +	*resFile >> mToolNo; +	*resFile >> tmp; // mAfterCategoryNo +	*resFile >> tmp; // mAfterToolNo +	*resFile >> mSubPluginType; +	*resFile >> tmp; // mCategoryIcon res ID +	*resFile >> tmp; // mCategoryHelpResID +	*resFile >> mValiationCount; + +	for (int i = 0; i < mValiationCount; i++) { +		mPriceString[i] = new CString; +		*resFile >> *mPriceString[i]; +		mOutMoneyString[i] = new CString; +		*resFile >> *mOutMoneyString[i]; +		mCommentString[i] = new CString; +		*resFile >> *mCommentString[i]; +		mToolName[i] = new CString; +		*resFile >> *mToolName[i]; +		mName[i] = new CString; +		*resFile >> *mName[i]; + +		*resFile >> mPrice[i]; +		*resFile >> mOutMoney[i]; +		*resFile >> tmp; // id2 +		*resFile >> tmp; // offscreen res ID +		*resFile >> tmp; // tool help res ID +		*resFile >> mConsumptionPower[i]; +	} +} + +/*virtual*/ T2ToolDef::~T2ToolDef() { +	for (int i = 0; i < mValiationCount; i++) { +		delete mPriceString[i]; +		delete mOutMoneyString[i]; +		delete mCommentString[i]; +		delete mToolName[i]; +		delete mName[i]; +	} + +	if (mToolIcon) +		delete mToolIcon; +	if (mEC) +		delete mEC; +	if (m114) +		delete m114; // what type is this? +	if (mSubPluginList) +		delete mSubPluginList; +} + +/*virtual*/ int T2ToolDef::GetSortKey() { +	int key = mCategoryNo << 16; +	key += mToolNo; +	return key; +} + +/*virtual*/ CURSORTYPE T2ToolDef::QueryCursor(T2TowerDoc*, POINT inPt, CString& outStr, RECT& outRect, POINT& outPt, int factor, unsigned int, int) { +	outStr = "Csr"; + +	inPt.x -= ((mWidth * UT2Coordinate::UnitHSize(factor)) / 2 - UT2Coordinate::UnitHSize(factor) / 2); +	inPt.y -= ((mHeight * UT2Coordinate::UnitVSize(factor)) / 2 - UT2Coordinate::UnitVSize(factor) / 2); + +	UT2Coordinate::QDToUnit(inPt, factor); + +	SetRect(&outRect, inPt.x, inPt.y, inPt.x + mWidth, inPt.y + mHeight); +	outPt.x = outRect.left; +	outPt.y = outRect.top; +	UT2Coordinate::UnitToQD(outRect, factor, 0); + +	return CursorType_0; +} + +CString T2ToolDef::CalcSoundID(int id) const { +	CString s; +	s.Format("%d:%d", mToolType, id); +	return s; +} + +void T2ToolDef::GetName(CString& outStr, int id) { +	outStr = *mName[id]; +} + +/*virtual*/ int T2ToolDef::CalcMentenanceCostProc(const T2HaveOutViewObject* obj) const { +	int cost = 0; +	T2ToolDef *objToolDef = obj->GetToolDef(); +	if (objToolDef->IsSetAttribute(0x100)) +		cost = GetOutMoney(obj->GetValiation()); +	return cost; +} + +int T2ToolDef::GetOutMoney(unsigned int id) const { +	int money = 0; +	if (id < 4) +		money = mOutMoney[id]; +	return money; +} + +void T2ToolDef::SetOutMoney(unsigned int id, int money) { +	if (id < 4) +		mOutMoney[id] = money; +} + +/*virtual*/ void T2ToolDef::Add(CResourcePlugin* plugin) { +	DWORD type = GetSubPluginType(); + +	if (plugin->GetType() == type) { +		if (!mSubPluginList) +			mSubPluginList = new CFilePluginList(type); + +		if (mSubPluginList) +			mSubPluginList->Add(plugin); +	} +} + +/*virtual*/ void T2ToolDef::Add(T2AdvertisePlugin* plugin) { +	DWORD type = GetSubPluginType(); + +	if (plugin->GetSubType() == type) { +		if (!mSubPluginList) +			mSubPluginList = new CFilePluginList(type); + +		if (mSubPluginList) +			mSubPluginList->Add(plugin); +	} +} + +/*virtual*/ PROCCODE T2ToolDef::DoDestructProc(T2TowerDoc*, T2HaveOutViewObject*, POINT, RECT&) { +	return ProcCode_0; +} diff --git a/src/T2DLL/T2ToolDef.h b/src/T2DLL/T2ToolDef.h new file mode 100644 index 0000000..f5cb467 --- /dev/null +++ b/src/T2DLL/T2ToolDef.h @@ -0,0 +1,96 @@ +#pragma once +#include "common.h" +#include "T2TemplatePlugin.h" + +class T2ToolDef : public T2TemplatePlugin { +public: +	T2ToolDef(DWORD type, T2PluginSpecifier& specifier, CResFile* resFile, T2WorldDef* worldDef, T2ToolPlugin* plugin); +	virtual ~T2ToolDef(); +	virtual int GetSortKey(); +	virtual int IsMover() { return 0; } +	virtual int IsTenant() { return 0; } +	virtual int IsOutObj() { return 0; } +	virtual int CalcPayment(T2TowerDoc*, RECT&, unsigned int id) { +		return mPrice[id]; +	} +	virtual int RequierToolIcon(T2ToolWindow*) { +		return 0; +	} +	virtual CURSORTYPE QueryCursor(T2TowerDoc*, POINT, CString&, RECT&, POINT&, int, unsigned int, int); +	virtual unsigned int IdleProc(T2HaveOutViewObject*, T2TowerDoc*) { +		return 0; +	} +	virtual void DefIdleProc(T2TowerDoc*) {} +	virtual void DrawProc(T2HaveOutViewObject*, const RECT&, T2TowerDoc*) const {} +	virtual PROCCODE DoDestructProc(T2TowerDoc*, T2HaveOutViewObject*, POINT, RECT&); +	virtual void DestructFinish(T2TowerDoc*, T2HaveOutViewObject*) {} +	virtual int CalcMentenanceCostProc(const T2HaveOutViewObject*) const; +	virtual void LoadExtraData(T2Archive&, T2TowerDoc*, T2HaveOutViewObject*) {} +	virtual void SaveExtraData(T2Archive&, T2HaveOutViewObject*) {} +	virtual void Add(T2AdvertisePlugin* plugin); +	virtual void Add(CResourcePlugin* plugin); +	virtual PROCCODE DrawHitMask(T2TowerDoc*, T2HaveOutViewObject*) { +		return ProcCode_0; +	} +	virtual unsigned long OptionProc(unsigned long, void*) { +		return 0; +	} + +	CString CalcSoundID(int) const; +	void GetName(CString& outStr, int id); +	int GetOutMoney(unsigned int id) const; +	void SetOutMoney(unsigned int id, int money); + +	int GetToolNo() const { return mToolNo; } +	int GetCategory() const { return mCategoryNo; } +	int GetToolType() const { return mToolType; } +	int IsSetAttribute(unsigned int a) const { return (mAttribute & a) != 0; } +	DWORD GetSubPluginType() const { return mSubPluginType; } +	unsigned int GetAttribute() const { return mAttribute; } +	T2BitImage* GetToolIcon() const { return mToolIcon; } +	void GetToolName(CString& outStr, int id) const { +		outStr = *mNames[id]; +	} +	void GetCategoryName(CString outStr) const { +		// BUG: outStr should be & +		outStr = mCategoryName; +	} +	int GetConsumptionPower(unsigned int id) { +		return mConsumptionPower[id]; +	} +	int GetCurBuildCount() const { return mCurBuildCount; } +	int GetMaxBuildCount() const { return mMaxBuildCount; } +	int GetSettlement() const { return mSettlement; } +	void DoStartUse() { mCurBuildCount++; } +	void DoEndUse() { mCurBuildCount--; } +	CFilePluginList* GetSubPluginList() { return mSubPluginList; } + +protected: +	int mToolType; +	int mWidth; +	int mHeight; +	int mLevel; +	unsigned int mAttribute; +	int mCategoryNo; +	CString mCategoryName; +	CString mCategoryCommentString; +	int mToolNo; +	int mValiationCount; +	CString *mPriceString[4]; +	CString *mOutMoneyString[4]; +	CString *mCommentString[4]; +	int mOutMoney[4]; +	CString *mToolName[4]; +	CString *mName[4]; +	int mPrice[4]; +	T2BitImage *mToolIcon; +	T2BitImage *mEC; +	int mConsumptionPower[4]; +	int mCurBuildCount; +	int mMaxBuildCount; +	DWORD mSubPluginType; +	CFilePluginList *mSubPluginList; +	int mSettlement; +	void *m114; // TODO what am i? +	int m118; +}; diff --git a/src/T2DLL/T2ToolDefList.cpp b/src/T2DLL/T2ToolDefList.cpp new file mode 100644 index 0000000..ef41d49 --- /dev/null +++ b/src/T2DLL/T2ToolDefList.cpp @@ -0,0 +1,79 @@ +#include "T2ToolDefList.h" + +T2ToolDefDB::T2ToolDefDB(const T2ToolDefDB&) { +} + +T2ToolDefDB& T2ToolDefDB::operator=(const T2ToolDefDB&) { +} + +T2ToolDefDB::T2ToolDefDB() { +} + +/*virtual*/ T2ToolDefDB::~T2ToolDefDB() { +} + +void T2ToolDefDB::AllClear() { +} + +void T2ToolDefDB::Regist(T2ToolDef*) { +} + +void T2ToolDefDB::Add(T2ToolDefList*) { +} + +T2ToolDefList* T2ToolDefDB::GetToolDefList(int) { +} + +T2TenantDef* T2ToolDefDB::FindFloor() { +} + +int T2ToolDefList::GetCategory() { +} + +int T2ToolDefList::GetCurrentItem() { +} + +void T2ToolDefList::SetCurrentItem(int) { +} + +int T2ToolDefList::GetCurrentVariant() { +} + +void T2ToolDefList::SetCurrentVariant(int) { +} + +T2ToolDefList::T2ToolDefList(const T2ToolDefList&) { +} + +T2ToolDefList& T2ToolDefList::operator=(const T2ToolDefList&) { +} + +T2ToolDefList::T2ToolDefList(int) { +} + +/*virtual*/ T2ToolDefList::~T2ToolDefList() { +} + +void T2ToolDefList::AllClear() { +} + +void T2ToolDefList::Regist(T2ToolDef*) { +} + +void T2ToolDefList::Add(T2ToolDef*) { +} + +unsigned int T2ToolDefList::GetItemCount() { +} + +T2ToolDef* T2ToolDefList::GetItemAt(int) { +} + +T2TenantDef* T2ToolDefList::FindFloor() { +} + +T2TenantDef* T2ToolDefList::FindTenantDef(int) { +} + +T2MoverDef* T2ToolDefList::FindMoverDef(int) { +} diff --git a/src/T2DLL/T2ToolDefList.h b/src/T2DLL/T2ToolDefList.h new file mode 100644 index 0000000..ab9d885 --- /dev/null +++ b/src/T2DLL/T2ToolDefList.h @@ -0,0 +1,35 @@ +#pragma once +#include "common.h" + +class T2ToolDefDB { +public: +	T2ToolDefDB(const T2ToolDefDB&); +	T2ToolDefDB& operator=(const T2ToolDefDB&); +	T2ToolDefDB(); +	virtual ~T2ToolDefDB(); +	void AllClear(); +	void Regist(T2ToolDef*); +	void Add(T2ToolDefList*); +	T2ToolDefList* GetToolDefList(int); +	T2TenantDef* FindFloor(); +}; +class T2ToolDefList { +public: +	int GetCategory(); +	int GetCurrentItem(); +	void SetCurrentItem(int); +	int GetCurrentVariant(); +	void SetCurrentVariant(int); +	T2ToolDefList(const T2ToolDefList&); +	T2ToolDefList& operator=(const T2ToolDefList&); +	T2ToolDefList(int); +	virtual ~T2ToolDefList(); +	void AllClear(); +	void Regist(T2ToolDef*); +	void Add(T2ToolDef*); +	unsigned int GetItemCount(); +	T2ToolDef* GetItemAt(int); +	T2TenantDef* FindFloor(); +	T2TenantDef* FindTenantDef(int); +	T2MoverDef* FindMoverDef(int); +}; diff --git a/src/T2DLL/T2ToolHelpWnd.cpp b/src/T2DLL/T2ToolHelpWnd.cpp new file mode 100644 index 0000000..f839139 --- /dev/null +++ b/src/T2DLL/T2ToolHelpWnd.cpp @@ -0,0 +1,43 @@ +#include "T2ToolHelpWnd.h" + +/*static*/ CObject* __stdcall T2ToolHelpWnd::CreateObject() { +} + +/*static*/ CRuntimeClass* __stdcall T2ToolHelpWnd::_GetBaseClass() { +} + +/*virtual*/ CRuntimeClass* T2ToolHelpWnd::GetRuntimeClass() const { +} + +T2ToolHelpWnd::T2ToolHelpWnd() { +} + +/*virtual*/ T2ToolHelpWnd::~T2ToolHelpWnd() { +} + +/*static*/ const AFX_MSGMAP* __stdcall T2ToolHelpWnd::_GetBaseMessageMap() { +} + +/*virtual*/ const AFX_MSGMAP* T2ToolHelpWnd::GetMessageMap() const { +} + +void T2ToolHelpWnd::OpenToolHelp(POINT&, int, const char*, const char*, T2ToolDef*, int) { +} + +void T2ToolHelpWnd::CloseToolHelp() { +} + +int T2ToolHelpWnd::OnEraseBkgnd(CDC*) { +} + +void T2ToolHelpWnd::OnDestroy() { +} + +/*static*/ const CRuntimeClass T2ToolHelpWnd::classT2ToolHelpWnd { +} + +/*static*/ const AFX_MSGMAP T2ToolHelpWnd::messageMap { +} + +/*static*/ const AFX_MSGMAP_ENTRY* const T2ToolHelpWnd::_messageEntries { +} diff --git a/src/T2DLL/T2ToolHelpWnd.h b/src/T2DLL/T2ToolHelpWnd.h new file mode 100644 index 0000000..13e95fa --- /dev/null +++ b/src/T2DLL/T2ToolHelpWnd.h @@ -0,0 +1,28 @@ +#pragma once +#include "common.h" + +class T2ToolHelpWnd { +public: +	static CObject* __stdcall CreateObject(); +protected: +	static CRuntimeClass* __stdcall _GetBaseClass(); +public: +	virtual CRuntimeClass* GetRuntimeClass() const; +	T2ToolHelpWnd(); +	virtual ~T2ToolHelpWnd(); +protected: +	static const AFX_MSGMAP* __stdcall _GetBaseMessageMap(); +	virtual const AFX_MSGMAP* GetMessageMap() const; +public: +	void OpenToolHelp(POINT&, int, const char*, const char*, T2ToolDef*, int); +	void CloseToolHelp(); +protected: +	int OnEraseBkgnd(CDC*); +	void OnDestroy(); +public: +	static const CRuntimeClass classT2ToolHelpWnd; +protected: +	static const AFX_MSGMAP messageMap; +private: +	static const AFX_MSGMAP_ENTRY* const _messageEntries; +}; diff --git a/src/T2DLL/T2ToolPlugin.cpp b/src/T2DLL/T2ToolPlugin.cpp new file mode 100644 index 0000000..db3d4e8 --- /dev/null +++ b/src/T2DLL/T2ToolPlugin.cpp @@ -0,0 +1,9 @@ +#include "T2ToolPlugin.h" + +T2ToolPlugin::T2ToolPlugin(DWORD type, T2PluginSpecifier& specifier) +	: CProgramPlugin(type, specifier) +{ +} + +/*virtual*/ T2ToolPlugin::~T2ToolPlugin() { +} diff --git a/src/T2DLL/T2ToolPlugin.h b/src/T2DLL/T2ToolPlugin.h new file mode 100644 index 0000000..7689081 --- /dev/null +++ b/src/T2DLL/T2ToolPlugin.h @@ -0,0 +1,9 @@ +#pragma once +#include "common.h" +#include "CProgramPlugin.h" + +class T2ToolPlugin : public CProgramPlugin { +public: +	T2ToolPlugin(DWORD type, T2PluginSpecifier& specifier); +	virtual ~T2ToolPlugin(); +}; diff --git a/src/T2DLL/T2ToolWindow.cpp b/src/T2DLL/T2ToolWindow.cpp new file mode 100644 index 0000000..3601077 --- /dev/null +++ b/src/T2DLL/T2ToolWindow.cpp @@ -0,0 +1,190 @@ +#include "T2ToolWindow.h" + +/*static*/ CObject* __stdcall T2ToolWindow::CreateObject() { +} + +/*static*/ CRuntimeClass* __stdcall T2ToolWindow::_GetBaseClass() { +} + +/*virtual*/ CRuntimeClass* T2ToolWindow::GetRuntimeClass() const { +} + +T2ToolWindow::T2ToolWindow() { +} + +/*virtual*/ T2ToolWindow::~T2ToolWindow() { +} + +/*virtual*/ void T2ToolWindow::SetDocument(T2TowerDoc*) { +} + +/*static*/ const AFX_MSGMAP* __stdcall T2ToolWindow::_GetBaseMessageMap() { +} + +/*virtual*/ const AFX_MSGMAP* T2ToolWindow::GetMessageMap() const { +} + +int T2ToolWindow::OnQueryNewPalette() { +} + +int T2ToolWindow::OnCreate(CREATESTRUCTA*) { +} + +/*virtual*/ int T2ToolWindow::GetSel() { +} + +/*virtual*/ void T2ToolWindow::SetSel(int) { +} + +/*virtual*/ CString* T2ToolWindow::GetIconName(int) { +} + +/*virtual*/ T2TemplatePlugin* T2ToolWindow::GetIconPlugin(int) { +} + +/*virtual*/ unsigned long T2ToolWindow::GetIconOption(int) { +} + +/*virtual*/ unsigned int T2ToolWindow::GetIconValiation(int) { +} + +/*virtual*/ void T2ToolWindow::AddIcon(const char*, char*, unsigned int, unsigned long, T2ToolDef*, int, unsigned short, T2ToolCallback*) { +} + +/*virtual*/ void T2ToolWindow::AddIcon(const char*, unsigned short, char*, T2ToolCallback*) { +} + +/*virtual*/ void T2ToolWindow::RemoveIcon(const char*, unsigned int) { +} + +/*virtual*/ void T2ToolWindow::RemoveAll() { +} + +/*virtual*/ int T2ToolWindow::GetID(const char*, unsigned int) { +} + +/*virtual*/ T2ToolIconItem* T2ToolWindow::GetItem(const char*, unsigned int) { +} + +/*virtual*/ T2ToolIconItem* T2ToolWindow::GetItem(int) { +} + +/*virtual*/ void T2ToolWindow::Refresh() { +} + +/*virtual*/ int T2ToolWindow::RefreshItem(T2ToolIconItem*) { +} + +/*virtual*/ T2TemplatePlugin* T2ToolWindow::SearchPlugin(T2TemplatePluginList*, CString&) { +} + +/*virtual*/ POSITION T2ToolWindow::SearchID(int) { +} + +/*virtual*/ int T2ToolWindow::AssignNewID() { +} + +/*virtual*/ void T2ToolWindow::RemoveItem(POSITION) { +} + +/*virtual*/ void T2ToolWindow::SelChange(int) { +} + +/*virtual*/ int T2ToolWindow::EnableIcon(const char*, unsigned int, int) { +} + +/*virtual*/ void T2ToolWindow::EnableIcon(int) { +} + +/*virtual*/ T2ToolIconItem* T2ToolWindow::EnableIcon(unsigned short) { +} + +/*virtual*/ void T2ToolWindow::RedrawButton() { +} + +/*virtual*/ void T2ToolWindow::Updated() { +} + +/*virtual*/ void T2ToolWindow::ListUpdated() { +} + +void T2ToolWindow::StartTimer(unsigned int) { +} + +void T2ToolWindow::StopTimer() { +} + +int T2ToolWindow::OnEraseBkgnd(CDC*) { +} + +void T2ToolWindow::OnLButtonDown(unsigned int, CPoint) { +} + +void T2ToolWindow::OnLButtonUp(unsigned int, CPoint) { +} + +void T2ToolWindow::OnMouseMove(unsigned int, CPoint) { +} + +void T2ToolWindow::OnLButtonDblClk(unsigned int, CPoint) { +} + +void T2ToolWindow::OnTimer(unsigned int) { +} + +void T2ToolWindow::OnSize(unsigned int, int, int) { +} + +void T2ToolWindow::OnDestroy() { +} + +/*virtual*/ int T2ToolWindow::OnCreateProc(CREATESTRUCTA*) { +} + +/*virtual*/ int T2ToolWindow::OnEraseBkgndProc(CDC*) { +} + +/*virtual*/ void T2ToolWindow::OnLButtonDownProc(unsigned int, CPoint) { +} + +/*virtual*/ void T2ToolWindow::OnLButtonUpProc(unsigned int, CPoint) { +} + +/*virtual*/ void T2ToolWindow::OnMouseMoveProc(unsigned int, CPoint) { +} + +/*virtual*/ void T2ToolWindow::OnLButtonDblClkProc(unsigned int, CPoint) { +} + +/*virtual*/ void T2ToolWindow::OnTimerProc(unsigned int) { +} + +/*virtual*/ void T2ToolWindow::OnSizeProc(unsigned int, int, int) { +} + +void T2ToolWindow::OnClose() { +} + +/*virtual*/ int T2ToolWindow::OnNotify(unsigned int, long, long*) { +} + +/*static*/ const CRuntimeClass T2ToolWindow::classT2ToolWindow { +} + +/*static*/ const AFX_MSGMAP T2ToolWindow::messageMap { +} + +/*static*/ const AFX_MSGMAP_ENTRY* const T2ToolWindow::_messageEntries { +} + +T2ToolIconItem::T2ToolIconItem() { +} + +/*virtual*/ T2ToolIconItem::~T2ToolIconItem() { +} + +T2ToolIconList::T2ToolIconList() { +} + +/*virtual*/ T2ToolIconList::~T2ToolIconList() { +} diff --git a/src/T2DLL/T2ToolWindow.h b/src/T2DLL/T2ToolWindow.h new file mode 100644 index 0000000..85c9bc8 --- /dev/null +++ b/src/T2DLL/T2ToolWindow.h @@ -0,0 +1,92 @@ +#pragma once +#include "common.h" + +class T2ToolWindow { +public: +	static CObject* __stdcall CreateObject(); +protected: +	static CRuntimeClass* __stdcall _GetBaseClass(); +public: +	virtual CRuntimeClass* GetRuntimeClass() const; +	T2ToolWindow(); +	virtual ~T2ToolWindow(); +	virtual void SetDocument(T2TowerDoc*); +protected: +	static const AFX_MSGMAP* __stdcall _GetBaseMessageMap(); +	virtual const AFX_MSGMAP* GetMessageMap() const; +	int OnQueryNewPalette(); +	int OnCreate(CREATESTRUCTA*); +public: +	virtual int GetSel(); +	virtual void SetSel(int); +	virtual CString* GetIconName(int); +	virtual T2TemplatePlugin* GetIconPlugin(int); +	virtual unsigned long GetIconOption(int); +	virtual unsigned int GetIconValiation(int); +	virtual void AddIcon(const char*, char*, unsigned int, unsigned long, T2ToolDef*, int, unsigned short, T2ToolCallback*); +	virtual void AddIcon(const char*, unsigned short, char*, T2ToolCallback*); +	virtual void RemoveIcon(const char*, unsigned int); +	virtual void RemoveAll(); +	virtual int GetID(const char*, unsigned int); +	virtual T2ToolIconItem* GetItem(const char*, unsigned int); +	virtual T2ToolIconItem* GetItem(int); +	virtual void Refresh(); +protected: +	virtual int RefreshItem(T2ToolIconItem*); +	virtual T2TemplatePlugin* SearchPlugin(T2TemplatePluginList*, CString&); +	virtual POSITION SearchID(int); +	virtual int AssignNewID(); +	virtual void RemoveItem(POSITION); +	virtual void SelChange(int); +public: +	virtual int EnableIcon(const char*, unsigned int, int); +	virtual void EnableIcon(int); +	virtual T2ToolIconItem* EnableIcon(unsigned short); +protected: +	virtual void RedrawButton(); +	virtual void Updated(); +	virtual void ListUpdated(); +public: +	void StartTimer(unsigned int); +	void StopTimer(); +protected: +	int OnEraseBkgnd(CDC*); +	void OnLButtonDown(unsigned int, CPoint); +	void OnLButtonUp(unsigned int, CPoint); +	void OnMouseMove(unsigned int, CPoint); +	void OnLButtonDblClk(unsigned int, CPoint); +	void OnTimer(unsigned int); +	void OnSize(unsigned int, int, int); +	void OnDestroy(); +public: +	virtual int OnCreateProc(CREATESTRUCTA*); +	virtual int OnEraseBkgndProc(CDC*); +	virtual void OnLButtonDownProc(unsigned int, CPoint); +	virtual void OnLButtonUpProc(unsigned int, CPoint); +	virtual void OnMouseMoveProc(unsigned int, CPoint); +	virtual void OnLButtonDblClkProc(unsigned int, CPoint); +	virtual void OnTimerProc(unsigned int); +	virtual void OnSizeProc(unsigned int, int, int); +protected: +	void OnClose(); +	virtual int OnNotify(unsigned int, long, long*); +public: +	static const CRuntimeClass classT2ToolWindow; +protected: +	static const AFX_MSGMAP messageMap; +private: +	static const AFX_MSGMAP_ENTRY* const _messageEntries; +}; +class T2ToolIconItem { +public: +	T2ToolIconItem(); +	virtual ~T2ToolIconItem(); + +	T2ToolIconItem(const T2ToolIconItem&) {} +	T2ToolIconItem& operator=(const T2ToolIconItem&) {} +}; +class T2ToolIconList { +public: +	T2ToolIconList(); +	virtual ~T2ToolIconList(); +}; diff --git a/src/T2DLL/T2TowerEvent.cpp b/src/T2DLL/T2TowerEvent.cpp new file mode 100644 index 0000000..57882f2 --- /dev/null +++ b/src/T2DLL/T2TowerEvent.cpp @@ -0,0 +1,79 @@ +#include "T2TowerEvent.h" + +T2TowerEvent::T2TowerEvent(T2WorldDef*) { +} + +T2TowerEvent::~T2TowerEvent() { +} + +void T2TowerEvent::InitTowerEvent(T2TowerDoc*) { +} + +T2FireBurning* T2TowerEvent::GetFireBurning() { +} + +T2MetroRailway* T2TowerEvent::GetMetroRailway() { +} + +T2BlackOut* T2TowerEvent::GetBlackOut() { +} + +T2TowerVision* T2TowerEvent::GetTowerVision() { +} + +T2Transport* T2TowerEvent::GetCruise() { +} + +int T2TowerEvent::IsBlackOut() { +} + +void T2TowerEvent::SetLatestBuild(T2Equip*, T2ToolDef*, int) { +} + +T2Equip* T2TowerEvent::GetLatestBuild() { +} + +void T2TowerEvent::AppendStandby(T2EventItem*) { +} + +void T2TowerEvent::InsertExecute(T2EventItem*) { +} + +void T2TowerEvent::MakeTowerVisionEvent(T2OutObj*) { +} + +void T2TowerEvent::KillTowerVisionEvent() { +} + +T2EventItem* T2TowerEvent::MakeXEvent(unsigned long) { +} + +void T2TowerEvent::KillXEvent(unsigned long) { +} + +T2EventItem* T2TowerEvent::GetEvent(unsigned long) { +} + +unsigned int T2TowerEvent::GetXEvent(unsigned long) { +} + +void T2TowerEvent::StopEvent() { +} + +int T2TowerEvent::Idle(T2TowerDoc*) { +} + +void T2TowerEvent::StoreWaitSequence(T2EventItem*) { +} + +void T2TowerEvent::Write(T2Archive&) { +} + +void T2TowerEvent::Read(T2Archive&) { +} + +void T2TowerEvent::DrawRubble(T2TowerDoc*, T2Tenant*) { +} + +void T2TowerEvent::ViewModeChanged(T2TowerDoc*, VIEWMODE) { +} diff --git a/src/T2DLL/T2TowerEvent.h b/src/T2DLL/T2TowerEvent.h new file mode 100644 index 0000000..f31c0a8 --- /dev/null +++ b/src/T2DLL/T2TowerEvent.h @@ -0,0 +1,35 @@ +#pragma once +#include "common.h" + +class T2TowerEvent { +public: +	T2TowerEvent(T2WorldDef*); +	~T2TowerEvent(); +	void InitTowerEvent(T2TowerDoc*); +	T2FireBurning* GetFireBurning(); +	T2MetroRailway* GetMetroRailway(); +	T2BlackOut* GetBlackOut(); +	T2TowerVision* GetTowerVision(); +	T2Transport* GetCruise(); +	int IsBlackOut(); +	void SetLatestBuild(T2Equip*, T2ToolDef*, int); +	T2Equip* GetLatestBuild(); +	void AppendStandby(T2EventItem*); +	void InsertExecute(T2EventItem*); +	void MakeTowerVisionEvent(T2OutObj*); +	void KillTowerVisionEvent(); +	T2EventItem* MakeXEvent(unsigned long); +	void KillXEvent(unsigned long); +	T2EventItem* GetEvent(unsigned long); +	unsigned int GetXEvent(unsigned long); +	void StopEvent(); +	int Idle(T2TowerDoc*); +	void StoreWaitSequence(T2EventItem*); +	void Write(T2Archive&); +	void Read(T2Archive&); +	void DrawRubble(T2TowerDoc*, T2Tenant*); +	void ViewModeChanged(T2TowerDoc*, VIEWMODE); + +	T2TowerEvent(const T2TowerEvent&) {} +	T2TowerEvent& operator=(const T2TowerEvent&) {} +}; diff --git a/src/T2DLL/T2TowerMessage.cpp b/src/T2DLL/T2TowerMessage.cpp new file mode 100644 index 0000000..32b7815 --- /dev/null +++ b/src/T2DLL/T2TowerMessage.cpp @@ -0,0 +1,61 @@ +#include "T2TowerMessage.h" + +T2TowerMessage::T2TowerMessage(HINSTANCE, T2TowerDoc*) { +} + +/*virtual*/ T2TowerMessage::~T2TowerMessage() { +} + +void T2TowerMessage::InfoBarMessage(const CString&, int, const char*) { +} + +void T2TowerMessage::SetInfoBarMsg(InfoBarMsgItem*) { +} + +void T2TowerMessage::EquipBalloonMessage(const CString&, T2Equip*) { +} + +void T2TowerMessage::PeopleBalloonMessage(const CString&, T2People*) { +} + +void T2TowerMessage::EquipBalloonMessage(const CString&, POINT) { +} + +void T2TowerMessage::BuildErr(const CString&) { +} + +void T2TowerMessage::BuildErr(unsigned int, T2EquipDef*) { +} + +int T2TowerMessage::GetBuildErrString(unsigned int, CString&) { +} + +void T2TowerMessage::ObjectBalloonMessage(const CString&, const RECT&) { +} + +void T2TowerMessage::InfoDialogMessage(const CString&, int, int) { +} + +void T2TowerMessage::AleatMessage(const CString&, int) { +} + +void T2TowerMessage::SpendTime() { +} + +void T2TowerMessage::SpendTime2() { +} + +/*virtual*/ void T2TowerMessage::ExecuteSelf(unsigned int, void*) { +} + +CWnd* T2TowerMessage::FindFloatingWindow(int) { +} + +void T2TowerMessage::CancelInfoBarMessage(const CString&) { +} + +void T2TowerMessage::PassiveInfoBarMessage(const char*, int, const char*) { +} + +void T2TowerMessage::SetCaptureRect(RECT) { +} diff --git a/src/T2DLL/T2TowerMessage.h b/src/T2DLL/T2TowerMessage.h new file mode 100644 index 0000000..5dca2c6 --- /dev/null +++ b/src/T2DLL/T2TowerMessage.h @@ -0,0 +1,33 @@ +#pragma once +#include "common.h" + +class T2TowerMessage { +public: +	T2TowerMessage(HINSTANCE, T2TowerDoc*); +	virtual ~T2TowerMessage(); +	void InfoBarMessage(const CString&, int, const char*); +private: +	void SetInfoBarMsg(InfoBarMsgItem*); +public: +	void EquipBalloonMessage(const CString&, T2Equip*); +	void PeopleBalloonMessage(const CString&, T2People*); +	void EquipBalloonMessage(const CString&, POINT); +	void BuildErr(const CString&); +	void BuildErr(unsigned int, T2EquipDef*); +	int GetBuildErrString(unsigned int, CString&); +	void ObjectBalloonMessage(const CString&, const RECT&); +	void InfoDialogMessage(const CString&, int, int); +	void AleatMessage(const CString&, int); +	void SpendTime(); +	void SpendTime2(); +	virtual void ExecuteSelf(unsigned int, void*); +private: +	CWnd* FindFloatingWindow(int); +public: +	void CancelInfoBarMessage(const CString&); +	void PassiveInfoBarMessage(const char*, int, const char*); +	void SetCaptureRect(RECT); + +	T2TowerMessage(const T2TowerMessage&) {} +	T2TowerMessage& operator=(const T2TowerMessage&) {} +}; diff --git a/src/T2DLL/T2TowerVision.cpp b/src/T2DLL/T2TowerVision.cpp new file mode 100644 index 0000000..4838242 --- /dev/null +++ b/src/T2DLL/T2TowerVision.cpp @@ -0,0 +1,16 @@ +#include "T2TowerVision.h" + +T2TowerVision::T2TowerVision(T2TowerEvent*, int, int, int, int, int, int, T2OutObj*) { +} + +/*virtual*/ T2TowerVision::~T2TowerVision() { +} + +/*virtual*/ int T2TowerVision::Exec(T2TowerDoc*) { +} + +/*virtual*/ void T2TowerVision::StopEvent(T2TowerDoc*) { +} + +int T2TowerVision::PrepareMovie(T2TowerDoc*) { +} diff --git a/src/T2DLL/T2TowerVision.h b/src/T2DLL/T2TowerVision.h new file mode 100644 index 0000000..c07bc74 --- /dev/null +++ b/src/T2DLL/T2TowerVision.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class T2TowerVision { +public: +	T2TowerVision(T2TowerEvent*, int, int, int, int, int, int, T2OutObj*); +	virtual ~T2TowerVision(); +	virtual int Exec(T2TowerDoc*); +	virtual void StopEvent(T2TowerDoc*); +	int PrepareMovie(T2TowerDoc*); + +	virtual unsigned long GetID() {} +	T2TowerVision(const T2TowerVision&) {} +	T2TowerVision& operator=(const T2TowerVision&) {} +}; diff --git a/src/T2DLL/T2TrafficInfo.cpp b/src/T2DLL/T2TrafficInfo.cpp new file mode 100644 index 0000000..6390c51 --- /dev/null +++ b/src/T2DLL/T2TrafficInfo.cpp @@ -0,0 +1,34 @@ +#include "T2TrafficInfo.h" + +T2TrafficInfo::T2TrafficInfo(RECT, unsigned int, unsigned int, unsigned int, unsigned int) { +} + +/*virtual*/ T2TrafficInfo::~T2TrafficInfo() { +} + +void T2TrafficInfo::Pass(POINT, POINT, short) { +} + +void T2TrafficInfo::HourChanged(T2TowerDoc*) { +} + +unsigned int T2TrafficInfo::CalcRange(unsigned int) const { +} + +void T2TrafficInfo::CalcUnitArea(unsigned int, RECT&) const { +} + +short T2TrafficInfo::GetRange(POINT) const { +} + +T2TrafficUnit* T2TrafficInfo::GetUnit(POINT) const { +} + +int T2TrafficInfo::CalcUnitIndex(POINT) const { +} + +void T2TrafficInfo::Read(T2Archive&) { +} + +void T2TrafficInfo::Write(T2Archive&) const { +} diff --git a/src/T2DLL/T2TrafficInfo.h b/src/T2DLL/T2TrafficInfo.h new file mode 100644 index 0000000..751f56d --- /dev/null +++ b/src/T2DLL/T2TrafficInfo.h @@ -0,0 +1,24 @@ +#pragma once +#include "common.h" + +class T2TrafficInfo { +public: +	T2TrafficInfo(RECT, unsigned int, unsigned int, unsigned int, unsigned int); +	virtual ~T2TrafficInfo(); +	void Pass(POINT, POINT, short); +	void HourChanged(T2TowerDoc*); +protected: +	unsigned int CalcRange(unsigned int) const; +	void CalcUnitArea(unsigned int, RECT&) const; +public: +	short GetRange(POINT) const; +protected: +	T2TrafficUnit* GetUnit(POINT) const; +	int CalcUnitIndex(POINT) const; +public: +	void Read(T2Archive&); +	void Write(T2Archive&) const; + +	T2TrafficInfo(const T2TrafficInfo&) {} +	T2TrafficInfo& operator=(const T2TrafficInfo&) {} +}; diff --git a/src/T2DLL/T2Transport.cpp b/src/T2DLL/T2Transport.cpp new file mode 100644 index 0000000..176c1d7 --- /dev/null +++ b/src/T2DLL/T2Transport.cpp @@ -0,0 +1,70 @@ +#include "T2Transport.h" + +T2Transport::T2Transport() { +} + +/*virtual*/ T2Transport::~T2Transport() { +} + +void T2Transport::Initialize() { +} + +void T2Transport::Init(T2Transport*, CResFile*) { +} + +void T2Transport::Init(T2Transport*, int) { +} + +void T2Transport::AddTransport(T2Transport*) { +} + +int T2Transport::GetNofTimeTable() { +} + +void T2Transport::SetStation(unsigned int) { +} + +void T2Transport::UpGrade(int) { +} + +int T2Transport::GetTrainType(int) const { +} + +unsigned int T2Transport::GetArriveTime(int) const { +} + +T2Transport* T2Transport::GetStoppage() const { +} + +int T2Transport::WasStoppage() const { +} + +int T2Transport::ChkStoppage() const { +} + +T2Transport* T2Transport::GetIndObject(int) const { +} + +T2Transport* T2Transport::GetAvailable(T2DateTime*) const { +} + +int T2Transport::IsAvailable(T2DateTime*) { +} + +int T2Transport::Enter(CLink*) { +} + +int T2Transport::Leave(CLink*) { +} + +CLink* T2Transport::LeaveFirst() { +} + +/*virtual*/ int T2Transport::Stop(T2TowerDoc*) { +} + +/*virtual*/ void T2Transport::Read(T2Archive&) { +} + +/*virtual*/ void T2Transport::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2Transport.h b/src/T2DLL/T2Transport.h new file mode 100644 index 0000000..4fc0443 --- /dev/null +++ b/src/T2DLL/T2Transport.h @@ -0,0 +1,39 @@ +#pragma once +#include "common.h" + +class T2Transport { +public: +	T2Transport(); +	virtual ~T2Transport(); +private: +	void Initialize(); +public: +	void Init(T2Transport*, CResFile*); +	void Init(T2Transport*, int); +	void AddTransport(T2Transport*); +	int GetNofTimeTable(); +	void SetStation(unsigned int); +	void UpGrade(int); +	int GetTrainType(int) const; +	unsigned int GetArriveTime(int) const; +	T2Transport* GetStoppage() const; +	int WasStoppage() const; +protected: +	int ChkStoppage() const; +	T2Transport* GetIndObject(int) const; +public: +	T2Transport* GetAvailable(T2DateTime*) const; +protected: +	int IsAvailable(T2DateTime*); +public: +	int Enter(CLink*); +	int Leave(CLink*); +	CLink* LeaveFirst(); +	virtual int Stop(T2TowerDoc*); +	virtual void Read(T2Archive&); +	virtual void Write(T2Archive&); + +	int IsFull() const {} +	T2Transport(const T2Transport&) {} +	T2Transport& operator=(const T2Transport&) {} +}; diff --git a/src/T2DLL/T2TreasureDialog.cpp b/src/T2DLL/T2TreasureDialog.cpp new file mode 100644 index 0000000..19ddddc --- /dev/null +++ b/src/T2DLL/T2TreasureDialog.cpp @@ -0,0 +1,28 @@ +#include "T2TreasureDialog.h" + +T2TreasureDialog::T2TreasureDialog() { +} + +/*virtual*/ T2TreasureDialog::~T2TreasureDialog() { +} + +/*virtual*/ void T2TreasureDialog::OnT2Create() { +} + +/*virtual*/ void T2TreasureDialog::CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&) { +} + +/*virtual*/ void T2TreasureDialog::OnT2Destroy() { +} + +/*virtual*/ void T2TreasureDialog::ShowSelf() { +} + +/*virtual*/ void T2TreasureDialog::HideSelf() { +} + +/*static*/ void T2TreasureDialog::ShowTreasureDialog(T2TowerDoc*, T2TreasureStatus*) { +} + +void T2TreasureDialog::SetTreasureInfo(T2TowerDoc*, T2TreasureStatus*) { +} diff --git a/src/T2DLL/T2TreasureDialog.h b/src/T2DLL/T2TreasureDialog.h new file mode 100644 index 0000000..8156f23 --- /dev/null +++ b/src/T2DLL/T2TreasureDialog.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class T2TreasureDialog { +public: +	T2TreasureDialog(); +	virtual ~T2TreasureDialog(); +protected: +	virtual void OnT2Create(); +	virtual void CreateDlgItem(CTokenizer&, T2Dialog::T2DialogDef&); +	virtual void OnT2Destroy(); +	virtual void ShowSelf(); +	virtual void HideSelf(); +public: +	static void ShowTreasureDialog(T2TowerDoc*, T2TreasureStatus*); +	void SetTreasureInfo(T2TowerDoc*, T2TreasureStatus*); +}; diff --git a/src/T2DLL/T2TreasurePane.cpp b/src/T2DLL/T2TreasurePane.cpp new file mode 100644 index 0000000..a6ed42c --- /dev/null +++ b/src/T2DLL/T2TreasurePane.cpp @@ -0,0 +1,22 @@ +#include "T2TreasurePane.h" + +T2TreasurePane::T2TreasurePane(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +/*virtual*/ T2TreasurePane::~T2TreasurePane() { +} + +void T2TreasurePane::SetAnimPics(T2TowerDoc*, int, int) { +} + +/*virtual*/ void T2TreasurePane::DrawSelf(CDC*) { +} + +/*virtual*/ void T2TreasurePane::SpendTime() { +} + +/*virtual*/ int T2TreasurePane::OnT2DlgItemEraseBkgnd(CDC*) { +} + +/*virtual*/ int T2TreasurePane::OnCreate(CREATESTRUCTA*) { +} diff --git a/src/T2DLL/T2TreasurePane.h b/src/T2DLL/T2TreasurePane.h new file mode 100644 index 0000000..327a3e2 --- /dev/null +++ b/src/T2DLL/T2TreasurePane.h @@ -0,0 +1,14 @@ +#pragma once +#include "common.h" + +class T2TreasurePane { +public: +	T2TreasurePane(T2TowerDoc*, T2ImageObj*, CPalette*); +	virtual ~T2TreasurePane(); +	void SetAnimPics(T2TowerDoc*, int, int); +	virtual void DrawSelf(CDC*); +	virtual void SpendTime(); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); +	virtual int OnCreate(CREATESTRUCTA*); +}; diff --git a/src/T2DLL/T2UnitInfo.cpp b/src/T2DLL/T2UnitInfo.cpp new file mode 100644 index 0000000..15660b5 --- /dev/null +++ b/src/T2DLL/T2UnitInfo.cpp @@ -0,0 +1,40 @@ +#include "T2UnitInfo.h" + +T2UnitInfo::T2UnitInfo() { +} + +T2UnitInfo::~T2UnitInfo() { +} + +int T2UnitInfo::IsBuildable() { +} + +int T2UnitInfo::IsMoverID(unsigned int) { +} + +int T2UnitInfo::IsRequestID(unsigned int) { +} + +unsigned int T2UnitInfo::GetTenantID() { +} + +unsigned int T2UnitInfo::GetMoverID() { +} + +unsigned int T2UnitInfo::GetRequestID() { +} + +void T2UnitInfo::FillTenantID(unsigned int) { +} + +void T2UnitInfo::FillMoverID(unsigned int) { +} + +void T2UnitInfo::InitMask(CResFile&) { +} + +void T2UnitInfo::Read(T2Archive&, T2TowerDoc*) { +} + +void T2UnitInfo::Write(T2Archive&) { +} diff --git a/src/T2DLL/T2UnitInfo.h b/src/T2DLL/T2UnitInfo.h new file mode 100644 index 0000000..2c0835e --- /dev/null +++ b/src/T2DLL/T2UnitInfo.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class T2UnitInfo { +public: +	T2UnitInfo(); +	~T2UnitInfo(); +	int IsBuildable(); +	int IsMoverID(unsigned int); +	int IsRequestID(unsigned int); +	unsigned int GetTenantID(); +	unsigned int GetMoverID(); +	unsigned int GetRequestID(); +	void FillTenantID(unsigned int); +	void FillMoverID(unsigned int); +	void InitMask(CResFile&); +	void Read(T2Archive&, T2TowerDoc*); +	void Write(T2Archive&); + +	T2UnitInfo& operator=(const T2UnitInfo&) {} +}; diff --git a/src/T2DLL/T2VerticalTable.cpp b/src/T2DLL/T2VerticalTable.cpp new file mode 100644 index 0000000..dcd2a6e --- /dev/null +++ b/src/T2DLL/T2VerticalTable.cpp @@ -0,0 +1,10 @@ +#include "T2VerticalTable.h" + +T2VerticalTable::T2VerticalTable(T2TowerDoc*, T2ImageObj*, CPalette*) { +} + +void T2VerticalTable::Clear() { +} + +/*virtual*/ int T2VerticalTable::OnT2DlgItemEraseBkgnd(CDC*) { +} diff --git a/src/T2DLL/T2VerticalTable.h b/src/T2DLL/T2VerticalTable.h new file mode 100644 index 0000000..f160e59 --- /dev/null +++ b/src/T2DLL/T2VerticalTable.h @@ -0,0 +1,13 @@ +#pragma once +#include "common.h" + +class T2VerticalTable { +public: +	T2VerticalTable(T2TowerDoc*, T2ImageObj*, CPalette*); +	void Clear(); +protected: +	virtual int OnT2DlgItemEraseBkgnd(CDC*); + +public: +	virtual ~T2VerticalTable() {} +}; diff --git a/src/T2DLL/T2VisitVIP.cpp b/src/T2DLL/T2VisitVIP.cpp new file mode 100644 index 0000000..9ed1e0f --- /dev/null +++ b/src/T2DLL/T2VisitVIP.cpp @@ -0,0 +1,37 @@ +#include "T2VisitVIP.h" + +T2VisitVIP::T2VisitVIP(T2TowerEvent*, CResFile*, int) { +} + +T2VisitVIP::T2VisitVIP(T2TowerEvent*, int, int, int, int, int, int) { +} + +/*virtual*/ T2VisitVIP::~T2VisitVIP() { +} + +/*virtual*/ int T2VisitVIP::IsBeginDay(int) { +} + +/*virtual*/ int T2VisitVIP::IsBeginTime(unsigned int) { +} + +/*virtual*/ int T2VisitVIP::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2VisitVIP::Exec(T2TowerDoc*) { +} + +void T2VisitVIP::Init(CResFile*) { +} + +int T2VisitVIP::DoReception(T2TowerDoc*) { +} + +int T2VisitVIP::GetDestinationTennant(unsigned long, T2Tenant*&, CFilePlugin*&, T2PluginSpecifier*&) { +} + +/*virtual*/ void T2VisitVIP::Write(T2Archive&) { +} + +/*virtual*/ void T2VisitVIP::Read(T2Archive&) { +} diff --git a/src/T2DLL/T2VisitVIP.h b/src/T2DLL/T2VisitVIP.h new file mode 100644 index 0000000..0d97c07 --- /dev/null +++ b/src/T2DLL/T2VisitVIP.h @@ -0,0 +1,22 @@ +#pragma once +#include "common.h" + +class T2VisitVIP { +public: +	T2VisitVIP(T2TowerEvent*, CResFile*, int); +	T2VisitVIP(T2TowerEvent*, int, int, int, int, int, int); +	virtual ~T2VisitVIP(); +	virtual int IsBeginDay(int); +	virtual int IsBeginTime(unsigned int); +	virtual int Start(T2TowerDoc*); +	virtual int Exec(T2TowerDoc*); +	void Init(CResFile*); +	int DoReception(T2TowerDoc*); +	int GetDestinationTennant(unsigned long, T2Tenant*&, CFilePlugin*&, T2PluginSpecifier*&); +	virtual void Write(T2Archive&); +	virtual void Read(T2Archive&); + +	virtual unsigned long GetID() {} +	T2VisitVIP(const T2VisitVIP&) {} +	T2VisitVIP& operator=(const T2VisitVIP&) {} +}; diff --git a/src/T2DLL/T2WeatherFilter.cpp b/src/T2DLL/T2WeatherFilter.cpp new file mode 100644 index 0000000..a65d3ce --- /dev/null +++ b/src/T2DLL/T2WeatherFilter.cpp @@ -0,0 +1,146 @@ +#include "T2WeatherFilter.h" + +T2WeatherFilter::T2WeatherFilter() { +	mCurrentWeather = WeatherCode_0; +	mPhase = 2; +	SetWeather(WeatherCode_0); +} + +T2WeatherFilter::~T2WeatherFilter() { +} + +void T2WeatherFilter::SetWeather(WeatherCode weather) { +	mLastChange = GetTickCount(); +	mTimeSinceLastChange = mLastChange; +	mNextWeather = weather; +	mLightningTime = -1; +} + +void T2WeatherFilter::ColorFilter(RGBQUAD* rgb) { +	if (mCurrentWeather == WeatherCode_1) +		RainyFilter(mTimeSinceLastChange, rgb); +	else if (mCurrentWeather == WeatherCode_2) +		SnowyFilter(mTimeSinceLastChange, rgb); +	else +		ClearFilter(mTimeSinceLastChange, rgb); +} + +void T2WeatherFilter::ClearFilter(unsigned long time, RGBQUAD* rgb) { +} + +void T2WeatherFilter::RainyFilter(unsigned long time, RGBQUAD* rgb) { +	if (mLightningTime <= time && time <= (mLightningTime + 200)) { +		RGBQUAD c; +		c.rgbRed = 240; +		c.rgbGreen = 240; +		c.rgbBlue = 128; +		ColorBlend(40, rgb, &c); +	} else { +		RGBQUAD c; +		c.rgbRed = (rgb->rgbRed * 500) / 1000; +		c.rgbGreen = (rgb->rgbGreen * 500) / 1000; +		c.rgbBlue = (rgb->rgbBlue * 600) / 1000; +		ColorFade(time, rgb, &c); +	} +} + +void T2WeatherFilter::SnowyFilter(unsigned long time, RGBQUAD* rgb) { +	RGBQUAD c; +	c.rgbRed = ((rgb->rgbRed + ((255 - rgb->rgbRed) * 500) / 1000) * 800) / 1000; +	c.rgbGreen = ((rgb->rgbGreen + ((255 - rgb->rgbGreen) * 500) / 1000) * 800) / 1000; +	c.rgbBlue = ((rgb->rgbBlue + ((255 - rgb->rgbBlue) * 500) / 1000) * 800) / 1000; +	ColorFade(time, rgb, &c); +} + +void T2WeatherFilter::ColorFade(unsigned long time, RGBQUAD* a, RGBQUAD* b) { +	if ((mPhase == 1) && (time <= 2500)) { +		a->rgbRed = (a->rgbRed * (2500 - time) + b->rgbRed * time) / 2500; +		a->rgbGreen = (a->rgbGreen * (2500 - time) + b->rgbGreen * time) / 2500; +		a->rgbBlue = (a->rgbBlue * (2500 - time) + b->rgbBlue * time) / 2500; +	} else if ((mPhase == 3) && (time <= 2500)) { +		a->rgbRed = (b->rgbRed * (2500 - time) + a->rgbRed * time) / 2500; +		a->rgbGreen = (b->rgbGreen * (2500 - time) + a->rgbGreen * time) / 2500; +		a->rgbBlue = (b->rgbBlue * (2500 - time) + a->rgbBlue * time) / 2500; +	} else { +		*a = *b; +	} +} + +void T2WeatherFilter::SkyColorFilter(RGBQUAD* rgb) { +	if (mCurrentWeather == WeatherCode_1) +		RainySkyFilter(mTimeSinceLastChange, rgb); +	else if (mCurrentWeather == WeatherCode_2) +		SnowySkyFilter(mTimeSinceLastChange, rgb); +	else +		ClearSkyFilter(mTimeSinceLastChange, rgb); +} + +void T2WeatherFilter::ClearSkyFilter(unsigned long time, RGBQUAD* rgb) { +} + +void T2WeatherFilter::RainySkyFilter(unsigned long time, RGBQUAD* rgb) { +	if (time >= 1800 && time <= 1900) { +		RGBQUAD c; +		c.rgbRed = 240; +		c.rgbGreen = 240; +		c.rgbBlue = 128; +		ColorBlend(15, rgb, &c); + +		mLightningTime = rand() % 15000 + 8000; +	} else if (mLightningTime <= time && time <= (mLightningTime + 200)) { +		RGBQUAD c; +		c.rgbRed = 240; +		c.rgbGreen = 240; +		c.rgbBlue = 128; +		ColorBlend(30, rgb, &c); + +		mLightningTime += rand() % 15000 + 8000; +	} else { +		int x = ((rgb->rgbRed * 33) + (rgb->rgbGreen * 42) + (rgb->rgbBlue * 25)) / 100; +		RGBQUAD c; +		c.rgbRed = (x * 128) / 255; +		c.rgbGreen = (x * 128) / 255; +		c.rgbBlue = (x * 140) / 255; +		ColorFade(time, rgb, &c); +	} +} + +void T2WeatherFilter::SnowySkyFilter(unsigned long time, RGBQUAD* rgb) { +	int z = ((rgb->rgbRed * 33) + (rgb->rgbGreen * 42) + (rgb->rgbBlue * 25)) / 100; +	int r = (((z * 180) / 255) & 255) + 80; +	int g = (((z * 180) / 255) & 255) + 80; +	int b = (((z * 180) / 255) & 255) + 80; + +	RGBQUAD c; +	c.rgbRed = (r <= 255) ? r : 255; +	c.rgbGreen = (g <= 255) ? g : 255; +	c.rgbBlue = (b <= 255) ? b : 255; + +	ColorFade(time, rgb, &c); +} + +void T2WeatherFilter::ColorBlend(int factor, RGBQUAD* a, RGBQUAD* b) { +	a->rgbRed = (a->rgbRed * (100 - factor) + b->rgbRed * factor) / 100; +	a->rgbGreen = (a->rgbGreen * (100 - factor) + b->rgbGreen * factor) / 100; +	a->rgbBlue = (a->rgbBlue * (100 - factor) + b->rgbBlue * factor) / 100; +} + +void T2WeatherFilter::Tick() { +	mTimeSinceLastChange = GetTickCount() - mLastChange; + +	if ((mPhase == 2) && (mCurrentWeather != mNextWeather)) { +		mPhase = 3; +		mLastChange = GetTickCount(); +	} + +	if ((mPhase == 1) && ((mTimeSinceLastChange >= 2500) || (mCurrentWeather == WeatherCode_0))) { +		mPhase = 2; +		mLastChange = GetTickCount(); +	} + +	if ((mPhase == 3) && ((mTimeSinceLastChange >= 2500) || (mCurrentWeather == WeatherCode_0))) { +		mPhase = 1; +		mCurrentWeather = mNextWeather; +		mLastChange = GetTickCount(); +	} +} diff --git a/src/T2DLL/T2WeatherFilter.h b/src/T2DLL/T2WeatherFilter.h new file mode 100644 index 0000000..257cd2b --- /dev/null +++ b/src/T2DLL/T2WeatherFilter.h @@ -0,0 +1,37 @@ +#pragma once +#include "common.h" + +enum WeatherCode { +	WeatherCode_0, +	WeatherCode_1, +	WeatherCode_2, +	WeatherCode_3 +}; + +class DLL_EXPORT T2WeatherFilter { +public: +	T2WeatherFilter(); +	~T2WeatherFilter(); + +	void SetWeather(WeatherCode weather); +	void ColorFilter(RGBQUAD*); +	void SkyColorFilter(RGBQUAD*); +	void Tick(); + +protected: +	void ClearFilter(unsigned long, RGBQUAD*); +	void RainyFilter(unsigned long, RGBQUAD*); +	void SnowyFilter(unsigned long, RGBQUAD*); +	void ColorFade(unsigned long, RGBQUAD*, RGBQUAD*); +	void ClearSkyFilter(unsigned long, RGBQUAD*); +	void RainySkyFilter(unsigned long, RGBQUAD*); +	void SnowySkyFilter(unsigned long, RGBQUAD*); +	void ColorBlend(int, RGBQUAD*, RGBQUAD*); + +	WeatherCode mCurrentWeather; +	WeatherCode mNextWeather; +	int mPhase; +	int mLightningTime; +	DWORD mLastChange; +	DWORD mTimeSinceLastChange; +}; diff --git a/src/T2DLL/T2WordDef.cpp b/src/T2DLL/T2WordDef.cpp new file mode 100644 index 0000000..3b92484 --- /dev/null +++ b/src/T2DLL/T2WordDef.cpp @@ -0,0 +1,28 @@ +#include "CResFile.h" +#include "T2WordDef.h" + +T2WordDef::T2WordDef() { +} + +void T2WordDef::Read(CResFile& resFile) { +	resFile >> mSexMask; +	resFile >> mAgeMask; +	resFile >> mFlags; +	resFile >> mLevel; +	resFile >> mStr; +} + +/*virtual*/ T2WordDef::~T2WordDef() { +} + +void T2WordDef::GetWords(unsigned int sex, unsigned int age, unsigned int flags, unsigned int level, CString& outStr) const { +	if ( +		(mSexMask & (1 << sex)) && +		(mAgeMask & (1 << age)) && +		(mFlags == flags) && +		(mLevel == level) +	) +	{ +		outStr = mStr; +	} +} diff --git a/src/T2DLL/T2WordDef.h b/src/T2DLL/T2WordDef.h new file mode 100644 index 0000000..e3e1aa4 --- /dev/null +++ b/src/T2DLL/T2WordDef.h @@ -0,0 +1,17 @@ +#pragma once +#include "common.h" + +class DLL_EXPORT T2WordDef { +public: +	T2WordDef(); +	void Read(CResFile&); +	virtual ~T2WordDef(); +	void GetWords(unsigned int sex, unsigned int age, unsigned int flags, unsigned int level, CString& outStr) const; + +protected: +	unsigned int mSexMask; +	unsigned int mAgeMask; +	unsigned int mFlags; +	unsigned int mLevel; +	char mStr[32]; +}; diff --git a/src/T2DLL/T2WordDefArray.cpp b/src/T2DLL/T2WordDefArray.cpp new file mode 100644 index 0000000..76b3248 --- /dev/null +++ b/src/T2DLL/T2WordDefArray.cpp @@ -0,0 +1,49 @@ +#include "CResFile.h" +#include "T2WordDef.h" +#include "T2WordDefArray.h" +#include "UT2Utils.h" + +T2WordDefArray::T2WordDefArray(HINSTANCE instance) { +	mInstance = instance; +} + +/*virtual*/ T2WordDefArray::~T2WordDefArray() { +} + +void T2WordDefArray::GetWords(unsigned int sex, unsigned int age, unsigned int flags, unsigned int level, CString& outStr) const { +	outStr = ""; + +	CResFile resFile; +	if (resFile.OpenResource(mInstance, 1, 'WoDf')) { +		unsigned int numOfWordDef; +		resFile >> numOfWordDef; + +		T2WordDef *wordDef = new T2WordDef[numOfWordDef]; + +		for (unsigned int i = 0; i < numOfWordDef; i++) +			wordDef[i].Read(resFile); + +		if (numOfWordDef > 0) { +			unsigned char *seen = (unsigned char *) malloc(numOfWordDef); +			memset(seen, 0, numOfWordDef); + +			unsigned int i = 0; +			while ((outStr == "") && i < numOfWordDef) { +				int rnd = UT2Utils::Randomize(numOfWordDef); +				if (!seen[rnd]) { +					seen[rnd] = true; +					wordDef[rnd].GetWords(sex, age, flags, level, outStr); +				} else { +					for (i = 0; i < numOfWordDef; i++) { +						if (!seen[i]) +							break; +					} +				} +			} + +			free(seen); +		} + +		delete[] wordDef; +	} +} diff --git a/src/T2DLL/T2WordDefArray.h b/src/T2DLL/T2WordDefArray.h new file mode 100644 index 0000000..e37bd5b --- /dev/null +++ b/src/T2DLL/T2WordDefArray.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class T2WordDefArray { +public: +	T2WordDefArray(HINSTANCE instance); +	virtual ~T2WordDefArray(); +	void GetWords(unsigned int sex, unsigned int age, unsigned int flags, unsigned int level, CString& outStr) const; + +protected: +	HINSTANCE mInstance; +}; diff --git a/src/T2DLL/T2WorldDef.cpp b/src/T2DLL/T2WorldDef.cpp new file mode 100644 index 0000000..9829b68 --- /dev/null +++ b/src/T2DLL/T2WorldDef.cpp @@ -0,0 +1,271 @@ +#include "T2WorldDef.h" + +T2WorldDef::T2WorldDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldPlugin*) { +} + +T2PaletteAnimeDef* T2WorldDef::MakePaletteAnimeDef() { +} + +T2PoolDef* T2WorldDef::MakePoolDef() { +} + +T2SeasonParamDef* T2WorldDef::MakeSeasonParamDef() { +} + +T2ColdTableDef* T2WorldDef::MakeColdTableDef() { +} + +/*virtual*/ T2WorldDef::~T2WorldDef() { +} + +/*virtual*/ void T2WorldDef::GetName(CString&) { +} + +/*virtual*/ void T2WorldDef::DrawWorld(T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawBkgnd(unsigned int, const RECT&, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawBkgnd(const RECT&, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawRoofAndFloor(const RECT&, T2TowerDoc*, ROOFANDFLOOR) { +} + +/*virtual*/ void T2WorldDef::DrawSideObj(T2Equip*, T2TowerDoc*, SIDEOBJPATTERN) { +} + +/*virtual*/ void T2WorldDef::DrawCrane(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ void T2WorldDef::CalcCranePos(T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClearCranePos(T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawBuild(T2Equip*, T2TowerDoc*) { +} + +void T2WorldDef::SetupOffscreen(HINSTANCE) { +} + +void T2WorldDef::DisposeOffscreen() { +} + +void T2WorldDef::SetupPalette(HINSTANCE) { +} + +void T2WorldDef::DisposePalette() { +} + +/*virtual*/ void T2WorldDef::DoAnimate(T2TowerDoc*) { +} + +/*virtual*/ int T2WorldDef::TenantAreaCheck(T2TowerDoc*, RECT&, int) { +} + +/*virtual*/ int T2WorldDef::IdleProc(T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawCtrl(T2TowerDoc*, T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::ButtonDownOnCtrl(T2TowerDoc*, T2MWControl*, CPoint, CWnd*) { +} + +/*virtual*/ void T2WorldDef::ButtonUpOnCtrl(T2TowerDoc*, T2MWControl*, CPoint, CWnd*) { +} + +/*virtual*/ void T2WorldDef::MouseMoveOnCtrl(T2TowerDoc*, T2MWControl*, CPoint, CWnd*) { +} + +/*virtual*/ void T2WorldDef::ClickClock(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickCalendar(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickFunds(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickPopulation(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawClock(T2MWControl*, T2DateTime&) { +} + +/*virtual*/ void T2WorldDef::DrawCalendar(T2MWControl*, T2DateTime&, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawFunds(T2MWControl*, int) { +} + +/*virtual*/ void T2WorldDef::DrawMessage(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawPauseButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawPopulation(T2MWControl*, int) { +} + +/*virtual*/ void T2WorldDef::ClickPauseButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::DrawInViewButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawOutViewButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawMaintButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawEvalButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawPriceButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawTransButton(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::DrawSlider(T2MWControl*) { +} + +/*virtual*/ void T2WorldDef::ClickInViewButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickOutViewButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickMaintButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickEvalButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickPriceButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ void T2WorldDef::ClickTransButton(T2MWControl*, T2TowerDoc*) { +} + +/*virtual*/ int T2WorldDef::SliderPointToValue(T2MWControl*, CPoint) { +} + +/*virtual*/ void T2WorldDef::DrawSimpleMWControl(T2MWControl*, const char*) { +} + +/*virtual*/ void T2WorldDef::GetToolTipText(T2TowerDoc*, T2MWControl*, NMTTDISPINFOA*) { +} + +/*virtual*/ void T2WorldDef::GetClockTip(T2TowerDoc*, T2MWControl*, char*) { +} + +/*virtual*/ void T2WorldDef::GetCalendarTip(T2TowerDoc*, T2MWControl*, char*) { +} + +/*virtual*/ void T2WorldDef::GetFundsTip(T2TowerDoc*, T2MWControl*, char*) { +} + +/*virtual*/ void T2WorldDef::GetPopulationTip(T2TowerDoc*, T2MWControl*, char*) { +} + +/*virtual*/ void T2WorldDef::GetPauseButtonTip(T2TowerDoc*, T2MWControl*, char*) { +} + +unsigned int T2WorldDef::GetToiletDenomi(unsigned int) const { +} + +unsigned int T2WorldDef::GetColdDenomi(unsigned int, unsigned int) const { +} + +int T2WorldDef::IsDustOn(unsigned int) const { +} + +T2TowerVision* T2WorldDef::GetTowerVision() { +} + +void T2WorldDef::SetLatestBuild(T2Equip*, int) { +} + +void T2WorldDef::SetLatestBuild(T2ToolDef*, int) { +} + +void T2WorldDef::InitTowerEvent(T2TowerDoc*) { +} + +void T2WorldDef::WriteTowerEvent(T2Archive&) { +} + +void T2WorldDef::ReadTowerEvent(T2Archive&) { +} + +void T2WorldDef::StopEvent() { +} + +T2TowerEvent* T2WorldDef::GetTowerEvent() { +} + +T2FireBurning* T2WorldDef::GetFireBurning() { +} + +T2MetroRailway* T2WorldDef::GetMetroRailway() { +} + +T2BlackOut* T2WorldDef::GetBlackOut() { +} + +int T2WorldDef::IsBlackOut() { +} + +/*virtual*/ void T2WorldDef::DrawRubble(T2TowerDoc*, T2Tenant*) { +} + +/*virtual*/ void T2WorldDef::DrawMark(T2BitImage*, const RECT&, int, unsigned int) { +} + +/*virtual*/ void T2WorldDef::InitializeBkgndInfo(BkgndInfo*) { +} + +/*virtual*/ void T2WorldDef::InitializeFloorInfo(T2FloorInfo*) { +} + +/*virtual*/ void T2WorldDef::InitializeDocument(T2TowerDoc*) { +} + +/*virtual*/ int T2WorldDef::CheckGameLevelProc(T2TowerDoc*) { +} + +/*virtual*/ int T2WorldDef::CheckTreasure(T2TowerDoc*, T2TreasureStatus*) { +} + +/*virtual*/ void T2WorldDef::GetGradeUpMessage(int, CString&) { +} + +/*virtual*/ void T2WorldDef::CalcOptionObj(T2TowerDoc*, T2Equip*) { +} + +/*virtual*/ void T2WorldDef::DrawOptionObj(T2TowerDoc*, const RECT&) { +} + +/*virtual*/ void T2WorldDef::SetupGradeUpAnimation(T2DlgItemAnimation*, int) { +} + +/*virtual*/ void T2WorldDef::WriteStatisticsProc(T2TowerDoc*, T2Archive&) { +} + +/*virtual*/ void T2WorldDef::ReadStatisticsProc(T2TowerDoc*, T2Archive&) { +} + +/*virtual*/ void T2WorldDef::ViewModeChanged(T2TowerDoc*, VIEWMODE) { +} + +/*virtual*/ void T2WorldDef::ReplaceSkyOffscreen(int) { +} + +/*virtual*/ T2EventItem* T2WorldDef::MakeXEvent(T2TowerEvent*, CResFile*, unsigned long, int) { +} diff --git a/src/T2DLL/T2WorldDef.h b/src/T2DLL/T2WorldDef.h new file mode 100644 index 0000000..b80d358 --- /dev/null +++ b/src/T2DLL/T2WorldDef.h @@ -0,0 +1,132 @@ +#pragma once +#include "common.h" +#include "T2TemplatePlugin.h" + +class T2WorldDef : public T2TemplatePlugin { +public: +	T2WorldDef(unsigned long, T2PluginSpecifier&, CResFile*, T2WorldPlugin*); +public: +	virtual ~T2WorldDef(); +	virtual void GetName(CString&); +	virtual int GetSortKey() { return 0; } +	virtual int GetInitialFunds() const { return 0; } +	virtual int IsHoliday(T2DateTime*) const { return 0; } +	virtual int IsRainyDay(T2DateTime*) const { return 0; } +	virtual int ExchangeMoney(int) const { return 0; } +	virtual void DrawWorld(T2TowerDoc*); +	virtual void DoAnimate(T2TowerDoc*); +	virtual void DrawBkgnd(unsigned int, const RECT&, T2TowerDoc*); +	virtual void DrawBkgnd(const RECT&, T2TowerDoc*); +	virtual void DrawRoofAndFloor(const RECT&, T2TowerDoc*, ROOFANDFLOOR); +	virtual void DrawBuild(T2Equip*, T2TowerDoc*); +	virtual void DrawSideObj(T2Equip*, T2TowerDoc*, SIDEOBJPATTERN); +	virtual void DrawOptionObj(T2TowerDoc*, const RECT&); +	virtual void DrawRubble(T2TowerDoc*, T2Tenant*); +	virtual void DrawMark(T2BitImage*, const RECT&, int, unsigned int); +	virtual void DrawCrane(T2TowerDoc*, const RECT&); +	virtual const char* GetMoneyUnit() { return 0; } +	virtual T2EventItem* MakeXEvent(T2TowerEvent*, CResFile*, unsigned long, int); +	virtual T2Transport* GetCruise(T2TowerEvent*) { return 0; } +	virtual void InitializeBkgndInfo(BkgndInfo*); +	virtual void InitializeFloorInfo(T2FloorInfo*); +	virtual void InitializeDocument(T2TowerDoc*); +	virtual int TenantAreaCheck(T2TowerDoc*, RECT&, int); +	virtual void CalcOptionObj(T2TowerDoc*, T2Equip*); +	virtual void CalcCranePos(T2TowerDoc*); +	virtual void ClearCranePos(T2TowerDoc*); +	virtual void DrawCtrl(T2TowerDoc*, T2MWControl*); +	virtual void ButtonDownOnCtrl(T2TowerDoc*, T2MWControl*, CPoint, CWnd*); +	virtual void ButtonUpOnCtrl(T2TowerDoc*, T2MWControl*, CPoint, CWnd*); +	virtual void MouseMoveOnCtrl(T2TowerDoc*, T2MWControl*, CPoint, CWnd*); +	virtual void GetToolTipText(T2TowerDoc*, T2MWControl*, NMTTDISPINFOA*); +	virtual int IdleProc(T2TowerDoc*); +	virtual int CheckGameLevelProc(T2TowerDoc*); +	virtual void GetGradeUpMessage(int, CString&); +	virtual void DayChanged(T2TowerDoc*) {} +	virtual void ViewModeChanged(T2TowerDoc*, VIEWMODE); +	virtual void ReplaceSkyOffscreen(int); +	virtual BOOL3 ChangeFastSEProc(T2PaletteAnime*) { return BOOL3_0; } +	virtual BOOL3 ChangeFastSEProc(T2PaletteAnime*, T2DateTime*) { return BOOL3_0; } +	virtual BOOL3 ChangeSEProc(T2PaletteAnime*) { return BOOL3_0; } +	virtual BOOL3 ChangeSkyColorProc(T2PaletteAnime*) { return BOOL3_0; } +	virtual BOOL3 AdjustSkyStateProc(T2PaletteAnime*, T2DateTime*) { return BOOL3_0; } +	virtual int UseOwnSkyPaletteFunction() { return 0; } +	virtual void SetupGradeUpAnimation(T2DlgItemAnimation*, int); +	virtual void WriteStatisticsProc(T2TowerDoc*, T2Archive&); +	virtual void ReadStatisticsProc(T2TowerDoc*, T2Archive&); +	virtual int CheckTreasure(T2TowerDoc*, T2TreasureStatus*); +	virtual unsigned long OptionProc(unsigned long, void*) { return 0; } + +	unsigned int GetToiletDenomi(unsigned int) const; +	unsigned int GetColdDenomi(unsigned int, unsigned int) const; +	int IsDustOn(unsigned int) const; +	T2TowerVision* GetTowerVision(); +	void SetLatestBuild(T2Equip*, int); +	void SetLatestBuild(T2ToolDef*, int); +	void InitTowerEvent(T2TowerDoc*); +	void WriteTowerEvent(T2Archive&); +	void ReadTowerEvent(T2Archive&); +	void StopEvent(); +	T2TowerEvent* GetTowerEvent(); +	T2FireBurning* GetFireBurning(); +	T2MetroRailway* GetMetroRailway(); +	T2BlackOut* GetBlackOut(); +	int IsBlackOut(); + +	CPalette* GetPalette() { return 0; } +	int IsUseMatterObject() const { return 0; } +	int GetOutViewKind() const { return 0; } +	T2PaletteAnimeDef* GetPaletteAnimeDef() const { return 0; } +	T2SeasonParamDef* GetSeasonParamDef() const { return 0; } +	int GetHeight() const { return 0; } +	int GetWidth() const { return 0; } +	void GetBuildArea(RECT&) const {} +	int IsStoppableFloor(int) { return 0; } +	int GetLobbyHeight() { return 0; } +	T2Maru_Reggae* GetReggae() { return 0; } +	int GetCashAmount(int) const { return 0; } + +protected: +	virtual void DrawClock(T2MWControl*, T2DateTime&); +	virtual void DrawCalendar(T2MWControl*, T2DateTime&, T2TowerDoc*); +	virtual void DrawFunds(T2MWControl*, int); +	virtual void DrawPopulation(T2MWControl*, int); +	virtual void DrawMessage(T2MWControl*); +	virtual void DrawPauseButton(T2MWControl*); +	virtual void DrawInViewButton(T2MWControl*); +	virtual void DrawOutViewButton(T2MWControl*); +	virtual void DrawMaintButton(T2MWControl*); +	virtual void DrawEvalButton(T2MWControl*); +	virtual void DrawPriceButton(T2MWControl*); +	virtual void DrawTransButton(T2MWControl*); +	virtual void DrawSlider(T2MWControl*); +	virtual void ClickClock(T2MWControl*, T2TowerDoc*); +	virtual void ClickCalendar(T2MWControl*, T2TowerDoc*); +	virtual void ClickFunds(T2MWControl*, T2TowerDoc*); +	virtual void ClickPopulation(T2MWControl*, T2TowerDoc*); +	virtual void ClickPauseButton(T2MWControl*, T2TowerDoc*); +	virtual void ClickInViewButton(T2MWControl*, T2TowerDoc*); +	virtual void ClickOutViewButton(T2MWControl*, T2TowerDoc*); +	virtual void ClickMaintButton(T2MWControl*, T2TowerDoc*); +	virtual void ClickEvalButton(T2MWControl*, T2TowerDoc*); +	virtual void ClickPriceButton(T2MWControl*, T2TowerDoc*); +	virtual void ClickTransButton(T2MWControl*, T2TowerDoc*); +	virtual int SliderPointToValue(T2MWControl*, CPoint); +	virtual void GetClockTip(T2TowerDoc*, T2MWControl*, char*); +	virtual void GetCalendarTip(T2TowerDoc*, T2MWControl*, char*); +	virtual void GetFundsTip(T2TowerDoc*, T2MWControl*, char*); +	virtual void GetPopulationTip(T2TowerDoc*, T2MWControl*, char*); +	virtual void GetPauseButtonTip(T2TowerDoc*, T2MWControl*, char*); +	virtual void DrawSimpleMWControl(T2MWControl*, const char*); + +	void SetupOffscreen(HINSTANCE); +	void DisposeOffscreen(); +	void SetupPalette(HINSTANCE); +	void DisposePalette(); + +protected: +	T2PaletteAnimeDef* MakePaletteAnimeDef(); +	T2PoolDef* MakePoolDef(); +	T2SeasonParamDef* MakeSeasonParamDef(); +	T2ColdTableDef* MakeColdTableDef(); +}; diff --git a/src/T2DLL/T2WorldPlugin.cpp b/src/T2DLL/T2WorldPlugin.cpp new file mode 100644 index 0000000..d57e40c --- /dev/null +++ b/src/T2DLL/T2WorldPlugin.cpp @@ -0,0 +1,52 @@ +#include "T2WorldPlugin.h" + +T2WorldPlugin::T2WorldPlugin(unsigned long, T2PluginSpecifier&) { +} + +/*virtual*/ T2WorldPlugin::~T2WorldPlugin() { +} + +/*virtual*/ int T2WorldPlugin::LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*) { +} + +/*virtual*/ T2WorldDef* T2WorldPlugin::LoadT2WorldDef() { +} + +/*virtual*/ void T2WorldPlugin::InitFloorInfoProc(T2WorldDef*, T2FloorInfo&) { +} + +/*virtual*/ void T2WorldPlugin::InitBkgndInfoProc(T2WorldDef*, BkgndInfo*) { +} + +/*virtual*/ void T2WorldPlugin::InitializeDocumentProc(T2TowerDoc*) { +} + +/*virtual*/ int T2WorldPlugin::IsHoliday(T2DateTime*) const { +} + +/*virtual*/ int T2WorldPlugin::IsRainyDay(T2DateTime*) { +} + +void T2WorldPlugin::_DrawClock(CWnd*, unsigned int) { +} + +void T2WorldPlugin::_DrawCalendar(CWnd*, unsigned int) { +} + +void T2WorldPlugin::_DrawFunds(CWnd*, int) { +} + +/*virtual*/ int T2WorldPlugin::CheckGameLevel(T2WorldDef*, T2TowerDoc*) { +} + +/*virtual*/ int T2WorldPlugin::XEventIsBeginTime(T2XEvent*, T2TowerDoc*, unsigned int) { +} + +/*virtual*/ int T2WorldPlugin::XEventIsBeginDay(T2XEvent*, T2TowerDoc*, int) { +} + +/*virtual*/ void T2WorldPlugin::XEventWrite(T2XEvent*, T2Archive&) { +} + +/*virtual*/ void T2WorldPlugin::XEventRead(T2XEvent*, T2Archive&) { +} diff --git a/src/T2DLL/T2WorldPlugin.h b/src/T2DLL/T2WorldPlugin.h new file mode 100644 index 0000000..5615f75 --- /dev/null +++ b/src/T2DLL/T2WorldPlugin.h @@ -0,0 +1,35 @@ +#pragma once +#include "common.h" + +class T2WorldPlugin { +public: +	T2WorldPlugin(unsigned long, T2PluginSpecifier&); +	virtual ~T2WorldPlugin(); +	virtual int LoadAllTemplatePlugin(T2WorldDef*, T2TemplatePluginDB*); +	virtual T2WorldDef* LoadT2WorldDef(); +	virtual void InitFloorInfoProc(T2WorldDef*, T2FloorInfo&); +	virtual void InitBkgndInfoProc(T2WorldDef*, BkgndInfo*); +	virtual void InitializeDocumentProc(T2TowerDoc*); +	virtual int IsHoliday(T2DateTime*) const; +	virtual int IsRainyDay(T2DateTime*); +protected: +	void _DrawClock(CWnd*, unsigned int); +	void _DrawCalendar(CWnd*, unsigned int); +	void _DrawFunds(CWnd*, int); +public: +	virtual int CheckGameLevel(T2WorldDef*, T2TowerDoc*); +	virtual int XEventIsBeginTime(T2XEvent*, T2TowerDoc*, unsigned int); +	virtual int XEventIsBeginDay(T2XEvent*, T2TowerDoc*, int); +	virtual void XEventWrite(T2XEvent*, T2Archive&); +	virtual void XEventRead(T2XEvent*, T2Archive&); + +	int GetNumOfClockStyle() {} +	virtual int CheckTreasure(T2TowerDoc*, T2TreasureStatus*) {} +	virtual int XEventInit(T2XEvent*, CResFile*) {} +	virtual int XEventDestruct(T2XEvent*) {} +	virtual int XEventStart(T2XEvent*, T2TowerDoc*) {} +	virtual int XEventExec(T2XEvent*, T2TowerDoc*) {} +	virtual int XEventStop(T2XEvent*, T2TowerDoc*) {} +	virtual int XEventDlgHook(T2XEvent*, T2TowerDoc*, T2EventDialog*, unsigned int) {} +	T2WorldPlugin& operator=(T2WorldPlugin&) {} +}; diff --git a/src/T2DLL/T2XEvent.cpp b/src/T2DLL/T2XEvent.cpp new file mode 100644 index 0000000..ed84be7 --- /dev/null +++ b/src/T2DLL/T2XEvent.cpp @@ -0,0 +1,55 @@ +#include "T2XEvent.h" + +T2XEvent::T2XEvent(T2TowerEvent*, CResFile*, unsigned long, int) { +} + +T2XEvent::T2XEvent(T2XEvent*, int) { +} + +/*virtual*/ T2XEvent::~T2XEvent() { +} + +/*virtual*/ void T2XEvent::Init(CResFile*) { +} + +/*virtual*/ unsigned long T2XEvent::GetID() { +} + +/*virtual*/ int T2XEvent::Start(T2TowerDoc*) { +} + +/*virtual*/ int T2XEvent::Exec(T2TowerDoc*) { +} + +/*virtual*/ void T2XEvent::StopEvent(T2TowerDoc*) { +} + +/*virtual*/ int T2XEvent::IsBeginTime(unsigned int) { +} + +/*virtual*/ int T2XEvent::IsBeginTime(T2TowerDoc*, unsigned int) { +} + +/*virtual*/ int T2XEvent::IsBeginDay(int) { +} + +/*virtual*/ int T2XEvent::IsBeginDay(T2TowerDoc*, int) { +} + +/*virtual*/ void T2XEvent::Write(T2Archive&) { +} + +/*virtual*/ void T2XEvent::Read(T2Archive&) { +} + +unsigned int T2XEvent::GetRefCon() { +} + +void T2XEvent::SetRefCon(unsigned int) { +} + +void T2XEvent::SetDialogItems(int, int, int* const, int, CString&) { +} + +/*virtual*/ unsigned int T2XEvent::DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*) { +} diff --git a/src/T2DLL/T2XEvent.h b/src/T2DLL/T2XEvent.h new file mode 100644 index 0000000..f3788a1 --- /dev/null +++ b/src/T2DLL/T2XEvent.h @@ -0,0 +1,28 @@ +#pragma once +#include "common.h" + +class T2XEvent { +public: +	T2XEvent(T2TowerEvent*, CResFile*, unsigned long, int); +	T2XEvent(T2XEvent*, int); +	virtual ~T2XEvent(); +	virtual void Init(CResFile*); +	virtual unsigned long GetID(); +	virtual int Start(T2TowerDoc*); +	virtual int Exec(T2TowerDoc*); +	virtual void StopEvent(T2TowerDoc*); +	virtual int IsBeginTime(unsigned int); +	virtual int IsBeginTime(T2TowerDoc*, unsigned int); +	virtual int IsBeginDay(int); +	virtual int IsBeginDay(T2TowerDoc*, int); +	virtual void Write(T2Archive&); +	virtual void Read(T2Archive&); +	unsigned int GetRefCon(); +	void SetRefCon(unsigned int); +	void SetDialogItems(int, int, int* const, int, CString&); +	virtual unsigned int DialogHook(T2EventDialog*, unsigned int, T2TowerDoc*); + +	virtual int IsXEvent() {} +	T2XEvent(const T2XEvent&) {} +	T2XEvent& operator=(const T2XEvent&) {} +}; diff --git a/src/T2DLL/UPoint.cpp b/src/T2DLL/UPoint.cpp new file mode 100644 index 0000000..0c93ea5 --- /dev/null +++ b/src/T2DLL/UPoint.cpp @@ -0,0 +1,7 @@ +#include "UPoint.h" + +/*static*/ void UPoint::MappingInRect(Point&, const RECT&) { +} + +/*static*/ void UPoint::MappingInRect(POINT&, const RECT&) { +} diff --git a/src/T2DLL/UPoint.h b/src/T2DLL/UPoint.h new file mode 100644 index 0000000..4ba16df --- /dev/null +++ b/src/T2DLL/UPoint.h @@ -0,0 +1,10 @@ +#pragma once +#include "common.h" + +class UPoint { +public: +	static void MappingInRect(Point&, const RECT&); +	static void MappingInRect(POINT&, const RECT&); + +	UPoint& operator=(const UPoint&) {} +}; diff --git a/src/T2DLL/URect.cpp b/src/T2DLL/URect.cpp new file mode 100644 index 0000000..8b4aa21 --- /dev/null +++ b/src/T2DLL/URect.cpp @@ -0,0 +1,19 @@ +#include "URect.h" + +/*static*/ void URect::SetEmpty(RECT&) { +} + +/*static*/ void URect::Center(const RECT&, RECT&, int) { +} + +/*static*/ int URect::Width(const RECT&) { +} + +/*static*/ int URect::Height(const RECT&) { +} + +/*static*/ void URect::Union(const RECT&, const RECT&, RECT&) { +} + +/*static*/ POINT URect::Center(const RECT&) { +} diff --git a/src/T2DLL/URect.h b/src/T2DLL/URect.h new file mode 100644 index 0000000..2b9b047 --- /dev/null +++ b/src/T2DLL/URect.h @@ -0,0 +1,15 @@ +#pragma once +#include "common.h" + +class URect { +public: +	static void SetEmpty(RECT&); +	static void Center(const RECT&, RECT&, int); +	static int Width(const RECT&); +	static int Height(const RECT&); +	static void Union(const RECT&, const RECT&, RECT&); +	static POINT Center(const RECT&); + +	URect() {} +	URect& operator=(const URect&) {} +}; diff --git a/src/T2DLL/UT2BkgndInfo.cpp b/src/T2DLL/UT2BkgndInfo.cpp new file mode 100644 index 0000000..b62afaf --- /dev/null +++ b/src/T2DLL/UT2BkgndInfo.cpp @@ -0,0 +1,90 @@ +#include "UT2BkgndInfo.h" + +/*static*/ BkgndInfo* UT2BkgndInfo::SetupBkgndInfo(const RECT& rect, int z) { +	BkgndInfo *bkgndInfo = NULL; + +	int vRange = (rect.bottom - rect.top) / 2; +	int hRange = (rect.right - rect.left) / 8; +	int zRange = z / 2; + +	if (vRange > 0 && hRange > 0) { +		int size = sizeof(BkgndInfo) + sizeof(void *) * (vRange - 1); +		bkgndInfo = (BkgndInfo *) malloc(size); +		memset(bkgndInfo, 0, size); + +		bkgndInfo->vRange = vRange; +		bkgndInfo->hRange = hRange; +		bkgndInfo->zRange = zRange; + +		for (int i = 0; i < vRange && bkgndInfo; i++) { +			size = sizeof(unsigned int) * hRange; +			bkgndInfo->arrays[i] = (unsigned int *) malloc(size); +			memset(bkgndInfo->arrays[i], 0, size); +			if (!bkgndInfo->arrays[i]) +				DisposeBkgndInfo(bkgndInfo); +		} +	} + +	return bkgndInfo; +} + +/*static*/ void UT2BkgndInfo::DisposeBkgndInfo(BkgndInfo*& info) { +	if (info) { +		for (int i = 0; i < info->vRange; i++) { +			if (info->arrays[i]) +				free(info->arrays[i]); +		} + +		free(info); +		info = NULL; +	} +} + +/*static*/ unsigned int UT2BkgndInfo::GetBkgndInfo(BkgndInfo* const inBkgndInfoPtr, int inV, int inH) { +	unsigned int result = 0; + +	if (!inBkgndInfoPtr) +		return 0; +	if (inV < 0 || inV >= inBkgndInfoPtr->vRange) +		return 0; +	if (inH < 0 || inH >= inBkgndInfoPtr->hRange) +		return 0; + +	unsigned int value = inBkgndInfoPtr->arrays[inV][inH]; +	value &= 0xFFFF; +	result = value; +	return result; +} + +/*static*/ void UT2BkgndInfo::UnitToBkgndRect(const RECT& inRect, RECT& outRect) { +	outRect.top = inRect.top / 2; +	outRect.left = inRect.left / 8; +	outRect.bottom = inRect.bottom / 2; +	outRect.right = inRect.right / 8; + +	if ((inRect.bottom % 2) != 0) +		outRect.bottom++; +	if ((inRect.right % 8) != 0) +		outRect.right++; +} + +/*static*/ void UT2BkgndInfo::BkgndToUnitRect(const RECT& inRect, RECT& outRect) { +	outRect.top = inRect.top * 2; +	outRect.left = inRect.left * 8; +	outRect.bottom = inRect.bottom * 2; +	outRect.right = inRect.right * 8; +} + +/*static*/ void UT2BkgndInfo::GetOffBkgndRect(int offset, RECT& rect) { +	SetRect(&rect, 0, 0, 8, 2); +	OffsetRect(&rect, 0, offset * 2); +} + +/*static*/ void UT2BkgndInfo::ReplaceID(const BkgndInfo* info, unsigned int a, int b) { +	for (int v = 0; v < info->vRange; v++) { +		for (int h = 0; h < info->hRange; h++) { +			unsigned int *p = &info->arrays[v][h]; +			if ((*p & 0xFFFF) >= a) +				*p += b; +		} +	}} diff --git a/src/T2DLL/UT2BkgndInfo.h b/src/T2DLL/UT2BkgndInfo.h new file mode 100644 index 0000000..4786100 --- /dev/null +++ b/src/T2DLL/UT2BkgndInfo.h @@ -0,0 +1,20 @@ +#pragma once +#include "common.h" + +struct BkgndInfo { +	int vRange; +	int hRange; +	int zRange; +	unsigned int *arrays[1]; +}; + +class DLL_EXPORT UT2BkgndInfo { +public: +	static BkgndInfo* SetupBkgndInfo(const RECT&, int); +	static void DisposeBkgndInfo(BkgndInfo*&); +	static unsigned int GetBkgndInfo(BkgndInfo* const, int, int); +	static void UnitToBkgndRect(const RECT&, RECT&); +	static void BkgndToUnitRect(const RECT&, RECT&); +	static void GetOffBkgndRect(int, RECT&); +	static void ReplaceID(const BkgndInfo*, unsigned int, int); +}; diff --git a/src/T2DLL/UT2Coordinate.cpp b/src/T2DLL/UT2Coordinate.cpp new file mode 100644 index 0000000..4c1323e --- /dev/null +++ b/src/T2DLL/UT2Coordinate.cpp @@ -0,0 +1,94 @@ +#include "UT2Coordinate.h" + +/*static*/ void UT2Coordinate::UnitToQD(int&, int&, int) { +} + +/*static*/ void UT2Coordinate::UnitToQD(POINT&, int, int) { +} + +/*static*/ void UT2Coordinate::UnitToQD(RECT&, int, int) { +} + +/*static*/ void UT2Coordinate::UnitToQD(const RECT&, RECT&, int, int) { +} + +/*static*/ void UT2Coordinate::UnitToQDRoof(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::UnitToQDFloor(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::UnitToOffRect(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::QDToUnit(int&, int&, int) { +} + +/*static*/ void UT2Coordinate::QDToUnit(POINT&, int) { +} + +/*static*/ void UT2Coordinate::QDToUnit(SDimension16&, int) { +} + +/*static*/ void UT2Coordinate::QDToUnit(RECT&, int) { +} + +/*static*/ void UT2Coordinate::QDToUnit(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::NoRoofQDToUnit(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::BkgndToQD(int&, int&, int) { +} + +/*static*/ void UT2Coordinate::BkgndToQD(POINT&, int) { +} + +/*static*/ void UT2Coordinate::BkgndToQD(RECT&, int) { +} + +/*static*/ void UT2Coordinate::BkgndToQD(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::QDToBkgnd(int&, int&, int) { +} + +/*static*/ void UT2Coordinate::QDToBkgnd(POINT&, int) { +} + +/*static*/ void UT2Coordinate::QDToBkgnd(SDimension16&, int) { +} + +/*static*/ void UT2Coordinate::QDToBkgnd(RECT&, int) { +} + +/*static*/ void UT2Coordinate::QDToBkgnd(const RECT&, RECT&, int) { +} + +/*static*/ void UT2Coordinate::UnitToBkgnd(const RECT&, RECT&) { +} + +/*static*/ void UT2Coordinate::BkgndToUnit(const RECT&, RECT&) { +} + +/*static*/ void UT2Coordinate::MakeRect(RECT&, const POINT&, const SDimension16&) { +} + +/*static*/ void UT2Coordinate::MakeRect(RECT&, const POINT&, int, int) { +} + +/*static*/ void UT2Coordinate::MakeRect(RECT&, int, int) { +} + +/*static*/ void UT2Coordinate::MakeCenterRect(RECT&, const POINT&, int, int) { +} + +/*static*/ void UT2Coordinate::AddRect(RECT&, const RECT&) { +} + +/*static*/ void UT2Coordinate::SubRect(RECT&, const RECT&) { +} + +/*static*/ void UT2Coordinate::ZoomOut(RECT&, int) { +} diff --git a/src/T2DLL/UT2Coordinate.h b/src/T2DLL/UT2Coordinate.h new file mode 100644 index 0000000..a9e3586 --- /dev/null +++ b/src/T2DLL/UT2Coordinate.h @@ -0,0 +1,47 @@ +#pragma once +#include "common.h" + +class UT2Coordinate { +public: +	static void UnitToQD(int&, int&, int); +	static void UnitToQD(POINT&, int, int); +	static void UnitToQD(RECT&, int, int); +	static void UnitToQD(const RECT&, RECT&, int, int); +	static void UnitToQDRoof(const RECT&, RECT&, int); +	static void UnitToQDFloor(const RECT&, RECT&, int); +	static void UnitToOffRect(const RECT&, RECT&, int); +	static void QDToUnit(int&, int&, int); +	static void QDToUnit(POINT&, int); +	static void QDToUnit(SDimension16&, int); +	static void QDToUnit(RECT&, int); +	static void QDToUnit(const RECT&, RECT&, int); +	static void NoRoofQDToUnit(const RECT&, RECT&, int); +	static void BkgndToQD(int&, int&, int); +	static void BkgndToQD(POINT&, int); +	static void BkgndToQD(RECT&, int); +	static void BkgndToQD(const RECT&, RECT&, int); +	static void QDToBkgnd(int&, int&, int); +	static void QDToBkgnd(POINT&, int); +	static void QDToBkgnd(SDimension16&, int); +	static void QDToBkgnd(RECT&, int); +	static void QDToBkgnd(const RECT&, RECT&, int); +	static void UnitToBkgnd(const RECT&, RECT&); +	static void BkgndToUnit(const RECT&, RECT&); +	static void MakeRect(RECT&, const POINT&, const SDimension16&); +	static void MakeRect(RECT&, const POINT&, int, int); +	static void MakeRect(RECT&, int, int); +	static void MakeCenterRect(RECT&, const POINT&, int, int); +	static void AddRect(RECT&, const RECT&); +	static void SubRect(RECT&, const RECT&); +	static void ZoomOut(RECT&, int); + + // fixme +	static int UnitVSize(int) { return 0; } +	static int UnitHSize(int) { return 0; } +	static int BkgndVSize(int) { return 0; } +	static int BkgndHSize(int) { return 0; } +	static int CalcRoofThick(int) { return 0; } +	static int CalcFloorThick(int) { return 0; } +	static void QDToOff(POINT&, int) {} +	static int RectWidth(const RECT&) { return 0; } +}; diff --git a/src/T2DLL/UT2Utils.cpp b/src/T2DLL/UT2Utils.cpp new file mode 100644 index 0000000..281ec30 --- /dev/null +++ b/src/T2DLL/UT2Utils.cpp @@ -0,0 +1,13 @@ +#include "UT2Utils.h" + +/*static*/ unsigned int UT2Utils::Float2Int(float) { +} + +/*static*/ void UT2Utils::GetRoomNumberString(int, CString&) { +} + +/*static*/ void UT2Utils::GetHourMinute(int, int&, int&) { +} + +/*static*/ void UT2Utils::GetMonetaryString(int, CString&) { +} diff --git a/src/T2DLL/UT2Utils.h b/src/T2DLL/UT2Utils.h new file mode 100644 index 0000000..df542ac --- /dev/null +++ b/src/T2DLL/UT2Utils.h @@ -0,0 +1,12 @@ +#pragma once +#include "common.h" + +class UT2Utils { +public: +	static unsigned int Float2Int(float); +	static void GetRoomNumberString(int, CString&); +	static void GetHourMinute(int, int&, int&); +	static void GetMonetaryString(int, CString&); + +	static int Randomize(int) { return 1; } +}; diff --git a/src/T2DLL/Wave.cpp b/src/T2DLL/Wave.cpp new file mode 100644 index 0000000..021583b --- /dev/null +++ b/src/T2DLL/Wave.cpp @@ -0,0 +1,34 @@ +#include "Wave.h" + +CWave::CWave() { +} + +CWave::CWave(const CString&) { +} + +CWave::CWave(unsigned int, HINSTANCE) { +} + +/*virtual*/ CWave::~CWave() { +} + +int CWave::Create(const CString&) { +} + +int CWave::Create(unsigned int, HINSTANCE) { +} + +int CWave::Play(int, int) const { +} + +int CWave::GetFormat(WAVEFORMATEX&) const { +} + +unsigned long CWave::GetDataLen() const { +} + +unsigned long CWave::GetData(unsigned char*&, unsigned long) const { +} + +int CWave::Free() { +} diff --git a/src/T2DLL/Wave.h b/src/T2DLL/Wave.h new file mode 100644 index 0000000..18ae45e --- /dev/null +++ b/src/T2DLL/Wave.h @@ -0,0 +1,21 @@ +#pragma once +#include "common.h" + +class CWave { +public: +	CWave(); +	CWave(const CString&); +	CWave(unsigned int, HINSTANCE); +	virtual ~CWave(); +	int Create(const CString&); +	int Create(unsigned int, HINSTANCE); +	int Play(int, int) const; +	int GetFormat(WAVEFORMATEX&) const; +	unsigned long GetDataLen() const; +	unsigned long GetData(unsigned char*&, unsigned long) const; +protected: +	int Free(); + +public: +	int IsValid() const {} +}; diff --git a/src/T2TowerDoc.h b/src/T2TowerDoc.h new file mode 100644 index 0000000..db42bc4 --- /dev/null +++ b/src/T2TowerDoc.h @@ -0,0 +1,175 @@ +#pragma once +#include "common.h" + +// TODO: this lad also inherits T2MsgWindowCallback, T2ToolCallback + +class T2TowerDoc : public CDocument { +public: +	virtual int IsDustOn() const; +	virtual void LoadsWorldPlugin(); +	// C0 +	virtual void towerDoc_vfC0(); +	virtual void towerDoc_vfC4(); +	virtual void towerDoc_vfC8(); +	virtual void towerDoc_vfCC(); +	// D0 +	virtual void towerDoc_vfD0(); +	virtual void towerDoc_vfD4(); +	virtual void towerDoc_vfD8(); +	virtual void towerDoc_vfDC(); +	// E0 +	virtual void towerDoc_vfE0(); +	virtual void towerDoc_vfE4(); +	virtual void towerDoc_vfE8(); +	virtual void towerDoc_vfEC(); +	// F0 +	virtual void towerDoc_vfF0(); +	virtual void towerDoc_vfF4(); +	virtual void towerDoc_vfF8(); +	virtual void towerDoc_vfFC(); +	// 100 +	virtual void towerDoc_vf100(); +	virtual void towerDoc_vf104(); +	virtual void towerDoc_vf108(); +	virtual void towerDoc_vf10C(); +	// 110 +	virtual T2TowerMainView *GetTowerMainView(); +	virtual void towerDoc_vf114(); +	virtual void towerDoc_vf118(); +	virtual void towerDoc_vf11C(int startIndex, int count, PALETTEENTRY *entries); // updates palette +	// 120 +	virtual T2DateTime *towerDoc_vf120() const; +	virtual void towerDoc_vf124(); +	virtual void towerDoc_vf128(); +	virtual void towerDoc_vf12C(); +	// 130 +	virtual void towerDoc_vf130(); +	virtual T2SoundPlayer *towerDoc_vf134(); +	virtual void towerDoc_vf138(); +	virtual void towerDoc_vf13C(); +	// 140 +	virtual void towerDoc_vf140(); +	virtual void towerDoc_vf144(); +	virtual void towerDoc_vf148(); +	virtual void towerDoc_vf14C(); +	// 150 +	virtual void towerDoc_vf150(); +	virtual void towerDoc_vf154(); +	virtual void towerDoc_vf158(); +	virtual int towerDoc_vf15C(const RECT &rect); +	// 160 +	virtual void towerDoc_vf160(); +	virtual void towerDoc_vf164(); +	virtual void towerDoc_vf168(); +	virtual void towerDoc_vf16C(); +	// 170 +	virtual T2WorldDef *towerDoc_vf170(); +	virtual void towerDoc_vf174(); +	virtual void towerDoc_vf178(); +	virtual void towerDoc_vf17C(); +	// 180 +	virtual void towerDoc_vf180(); +	virtual void towerDoc_vf184(); +	virtual void towerDoc_vf188(); +	virtual void towerDoc_vf18C(); +	// 190 +	virtual void towerDoc_vf190(); +	virtual void towerDoc_vf194(); +	virtual void towerDoc_vf198(); +	virtual void towerDoc_vf19C(); +	// 1A0 +	virtual void towerDoc_vf1A0(int); +	virtual void towerDoc_vf1A4(); +	virtual void towerDoc_vf1A8(); +	virtual void towerDoc_vf1AC(); +	// 1B0 +	virtual void towerDoc_vf1B0(); +	virtual void towerDoc_vf1B4(); +	virtual void towerDoc_vf1B8(); +	virtual void towerDoc_vf1BC(); +	// 1C0 +	virtual void towerDoc_vf1C0(); +	virtual void towerDoc_vf1C4(); +	virtual void towerDoc_vf1C8(); +	virtual void towerDoc_vf1CC(); +	// 1D0 +	virtual void towerDoc_vf1D0(); +	virtual void towerDoc_vf1D4(); +	virtual void towerDoc_vf1D8(); +	virtual void towerDoc_vf1DC(); +	// 1E0 +	virtual void towerDoc_vf1E0(); +	virtual void towerDoc_vf1E4(); +	virtual void towerDoc_vf1E8(); +	virtual void towerDoc_vf1EC(); +	// 1F0 +	virtual void towerDoc_vf1F0(); +	virtual void towerDoc_vf1F4(); +	virtual void towerDoc_vf1F8(); +	virtual void towerDoc_vf1FC(); +	// 200 +	virtual void towerDoc_vf200(); +	virtual void towerDoc_vf204(); +	virtual void towerDoc_vf208(); +	virtual void towerDoc_vf20C(); +	// 210 +	virtual void towerDoc_vf210(); +	virtual void towerDoc_vf214(); +	virtual void towerDoc_vf218(); +	virtual void towerDoc_vf21C(); +	// 220 +	virtual void towerDoc_vf220(); +	virtual void towerDoc_vf224(); +	virtual void towerDoc_vf228(); +	virtual void towerDoc_vf22C(); +	// 230 +	virtual void towerDoc_vf230(); +	virtual void towerDoc_vf234(); +	virtual void towerDoc_vf238(); +	virtual void towerDoc_vf23C(); +	// 240 +	virtual void towerDoc_vf240(); +	virtual void towerDoc_vf244(); +	virtual void towerDoc_vf248(); +	virtual void towerDoc_vf24C(); +	// 250 +	virtual void towerDoc_vf250(); +	virtual void towerDoc_vf254(); +	virtual void towerDoc_vf258(); +	virtual void towerDoc_vf25C(); +	// 260 +	virtual void towerDoc_vf260(); +	virtual void towerDoc_vf264(); +	virtual void towerDoc_vf268(); +	virtual void towerDoc_vf26C(); +	// 270 +	virtual void towerDoc_vf270(); +	virtual void towerDoc_vf274(); +	virtual void DoPayTool(int cost, short unk, T2ToolDef *toolDef); +	virtual void towerDoc_vf27C(); +	// 280 +	virtual void towerDoc_vf280(); +	virtual void towerDoc_vf284(); +	virtual void towerDoc_vf288(); +	virtual void towerDoc_vf28C(); +	// 290 +	virtual void towerDoc_vf290(int pauseVal); +	virtual void towerDoc_vf294(); +	virtual void towerDoc_vf298(); +	virtual void towerDoc_vf29C(); +	// 2A0 +	virtual void towerDoc_vf2A0(); +	virtual void towerDoc_vf2A4(); +	virtual void towerDoc_vf2A8(); +	virtual void towerDoc_vf2AC(); +	// 2B0 +	virtual void towerDoc_vf2B0(); +	virtual void towerDoc_vf2B4(); +	virtual void towerDoc_vf2B8(); +	virtual void towerDoc_vf2BC(); +	// 2C0 +	virtual void towerDoc_vf2C0(); + +	int mZoomLevel; +	T2WorldDef *mWorldDef; +}; diff --git a/src/T2TowerMainView.h b/src/T2TowerMainView.h new file mode 100644 index 0000000..fc0547d --- /dev/null +++ b/src/T2TowerMainView.h @@ -0,0 +1,28 @@ +#pragma once +#include "common.h" +#include "LAttachable.h" + +class T2TowerMainView : public CView, public LAttachable { +public: +	virtual void tmv_vf110(); +	virtual void tmv_vf114(); +	virtual void tmv_vf118(); +	virtual void tmv_vf11C(); +	virtual void tmv_vf120(); +	virtual void tmv_vf124(BOOL); // some invalidator +	virtual void tmv_vf128(); +	virtual void tmv_vf12C(); +	virtual void tmv_vf130(); +	virtual void tmv_vf134(); +	virtual void tmv_vf138(); +	virtual void tmv_vf13C(); +	virtual void tmv_vf140(); +	virtual void tmv_vf144(); +	virtual void tmv_vf148(); +	virtual void tmv_vf14C(); +	virtual void tmv_vf150(); +	virtual void tmv_vf154(); +	virtual void tmv_vf158(); +	virtual void tmv_vf15C(); +	virtual void tmv_vf160(); +}; diff --git a/src/common.h b/src/common.h new file mode 100644 index 0000000..b0b92ef --- /dev/null +++ b/src/common.h @@ -0,0 +1,183 @@ +#pragma once +#include <AFX.H> +#include <AFXTEMPL.H> +#include <AFXWIN.H> +#include <AFXCMN.H> +#include <MBSTRING.H> +#include <CRTDBG.H> +#include <MMSYSTEM.H> +#include <DSOUND.H> +#include <math.h> + +class CFilePlugin; +class CFilePluginList; +class CProgramPlugin; +class CResFile; +class CResourcePlugin; +class CT2App; +class CTokenizer; +class CWave; +class LArray; +class LArrayIterator; +class LAttachable; +class LAttachment; +class LBroadcaster; +class LListener; +class T2AdvertisePlugin; +class T2Archive; +class T2BitImage; +class T2BlackOut; +class T2ColdTableDef; +class T2CrossEquipArray; +class T2DateTime; +class T2DayLightFilter; +class T2DlgItem; +class T2DlgItemAnimation; +class T2DlgItemHScr; +class T2DlgItemVScr; +class T2DrawableObject; +class T2Equip; +class T2EquipDef; +class T2EquipPlugin; +class T2EventItem; +class T2FireBurning; +class T2FloorInfo; +class T2GlobalData; +class T2HaveOutViewObject; +class T2ImageObj; +class T2InfoDialog; +class T2Maru_Reggae; +class T2Matter; +class T2MatterDef; +class T2MetroRailway; +class T2Mover; +class T2MoverArrayList; +class T2MoverDef; +class T2MoverModule; +class T2MWControl; +class T2Object; +class T2OutObj; +class T2OutObjArrayList; +class T2OuterObjDef; +class T2OutsideInfo; +class T2PaletteAnime; +class T2PaletteAnimeDef; +class T2People; +class T2PeopleDef; +class T2PeopleArrayList; +class T2PeopleType; +class T2PluginSpecifier; +class T2Pool; +class T2PoolDef; +class T2PoolTimeZoneDef; +class T2Request; +class T2RequestArrayList; +class T2ReturnStack; +class T2RouteCEArray; +class T2SeasonParamDef; +class T2SilhouetteDef; +class T2SoundObjItem; +class T2SoundPlayer; +class T2Sprite; +class T2SpriteObj; +class T2TemplatePlugin; +class T2TemplatePluginDB; +class T2TemplatePluginList; +class T2Tenant; +class T2TenantArrayList; +class T2TenantDef; +class T2TenantMemberDef; +class T2ToolDef; +class T2ToolPlugin; +class T2ToolWindow; +class T2TowerDoc; +class T2TowerEvent; +class T2TowerMainView; +class T2TowerVision; +class T2Transport; +class T2TreasureStatus; +class T2UnitInfo; +class T2WeatherFilter; +class T2WordDefArray; +class T2WorldDef; +class T2WorldPlugin; + +enum AREACHECKCODE { +	AreaCheckCode_0 +}; + +enum CURSORTYPE { +	CursorType_0 +}; + +enum MOUSEEVENT { +	MouseEvent_0 +}; + +enum OPTIONEVENTTYPE { +	OptionEventType_0 +}; + +enum PARTCODE { +	PartCode_0, +	PartCode_1, +	PartCode_2 +}; + +enum PROCCODE { +	ProcCode_0, +	ProcCode_1, +	ProcCode_2 +}; + +enum ROOFANDFLOOR { +	RoofAndFloor_0 +}; + +enum SIDEOBJPATTERN { +	SideObjPattern_0 +}; + +enum VIEWMODE { +	ViewMode_0 +}; + +enum BOOL3 { +	BOOL3_NEG1 = -1, +	BOOL3_0 = 0, +	BOOL3_1 = 1 +}; + +enum ERequestUpDown; + +struct BkgndInfo; + +struct SDimension16 { +	short width; +	short height; +}; + +struct TableCellT { +	UINT row; +	UINT col; +}; + +#ifdef _MSC_VER +#define MSVC_STDCALL __stdcall +#define DLL_EXPORT __declspec(dllexport) +#else +#define MSVC_STDCALL +#define DLL_EXPORT +#endif + +// why is this necessary? +inline int MSVC_STDCALL my_atoi(const char *s) { +	int v = 0; +	while (*s && *s >= '0' && *s <= '9') { +		v = (v * 10) + (*s - '0'); +		s++; +	} +	return v; +} + +#define atoi my_atoi  | 
