summaryrefslogtreecommitdiff
path: root/src/T2DLL/T2PluginSpecifier.cpp
blob: 69a4fede275218b012c618e5205199b525692d05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#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__, "\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x89\xF3\x82\xEA\x82\xC4\x82\xA2\x82\xE9\x82\xA9\x81\x41\x88\xC8\x91\x4F\x82\xC9\x54\x68\x65\x20\x54\x6F\x77\x65\x72\x87\x55\x82\xAA\x88\xD9\x8F\xED\x8F\x49\x97\xB9\x82\xB5\x82\xBD\x82\xBD\x82\xDF\x82\xC9\x81\x41\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x8E\x67\x82\xA6\x82\xC8\x82\xAD\x82\xC8\x82\xC1\x82\xC4\x82\xA2\x82\xDC\x82\xB7\x81\x42\n\x57\x69\x6E\x64\x6F\x77\x73\x82\xF0\x8D\xC4\x8B\x4E\x93\xAE\x82\xB5\x82\xC4\x82\xDD\x82\xC4\x82\xAD\x82\xBE\x82\xB3\x82\xA2\x81\x42\n\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x96\xBC\x20\x81\x46\x20\x25\x73", (DWORD) path);
		}
	} else {
		if (!resFile.OpenResource(path, 128, 'ATTR')) {
#line 50
            __Rep1(__FILE__, __LINE__, "\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x89\xF3\x82\xEA\x82\xC4\x82\xA2\x82\xE9\x82\xA9\x81\x41\x88\xC8\x91\x4F\x82\xC9\x54\x68\x65\x20\x54\x6F\x77\x65\x72\x87\x55\x82\xAA\x88\xD9\x8F\xED\x8F\x49\x97\xB9\x82\xB5\x82\xBD\x82\xBD\x82\xDF\x82\xC9\x81\x41\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x8E\x67\x82\xA6\x82\xC8\x82\xAD\x82\xC8\x82\xC1\x82\xC4\x82\xA2\x82\xDC\x82\xB7\x81\x42\n\x57\x69\x6E\x64\x6F\x77\x73\x82\xF0\x8D\xC4\x8B\x4E\x93\xAE\x82\xB5\x82\xC4\x82\xDD\x82\xC4\x82\xAD\x82\xBE\x82\xB3\x82\xA2\x81\x42\n\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x96\xBC\x20\x81\x46\x20\x25\x73", (DWORD) path);
		}
	}

	int tmp;

	resFile >> mID;
	resFile >> mAttrib;
	resFile >> tmp; // mDependID
	resFile >> mGameLevel;
	resFile >> mSecretItem;
	resFile >> tmp; // mItemType
	resFile >> tmp; // mMustItem
	resFile >> mPluginName;

	mIsSubPlugin = resFile.IsSubPlugin();
	mPath = path;
	mInstance = inst;
	mIsLoaded = true;

	if (inst) {
		if (!resFile.OpenResource(inst, 128, "DESC")) {
            // プラグインが壊れているか、以前にThe TowerⅡが異常終了したために、プラグインが使えなくなっています。
            // Windowsを再起動してみてください。
            // プラグイン名 : %s
#line 68
			__Rep1(__FILE__, __LINE__, "\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x89\xF3\x82\xEA\x82\xC4\x82\xA2\x82\xE9\x82\xA9\x81\x41\x88\xC8\x91\x4F\x82\xC9\x54\x68\x65\x20\x54\x6F\x77\x65\x72\x87\x55\x82\xAA\x88\xD9\x8F\xED\x8F\x49\x97\xB9\x82\xB5\x82\xBD\x82\xBD\x82\xDF\x82\xC9\x81\x41\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x8E\x67\x82\xA6\x82\xC8\x82\xAD\x82\xC8\x82\xC1\x82\xC4\x82\xA2\x82\xDC\x82\xB7\x81\x42\n\x57\x69\x6E\x64\x6F\x77\x73\x82\xF0\x8D\xC4\x8B\x4E\x93\xAE\x82\xB5\x82\xC4\x82\xDD\x82\xC4\x82\xAD\x82\xBE\x82\xB3\x82\xA2\x81\x42\n\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x96\xBC\x20\x81\x46\x20\x25\x73", (DWORD) path);
		}
	} else {
		if (!resFile.OpenResource(path, 128, 'DESC')) {
            // プラグインが壊れているか、以前にThe TowerⅡが異常終了したために、プラグインが使えなくなっています。
            // Windowsを再起動してみてください。
            // プラグイン名 : %s
#line 73
			__Rep1(__FILE__, __LINE__, "\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x89\xF3\x82\xEA\x82\xC4\x82\xA2\x82\xE9\x82\xA9\x81\x41\x88\xC8\x91\x4F\x82\xC9\x54\x68\x65\x20\x54\x6F\x77\x65\x72\x87\x55\x82\xAA\x88\xD9\x8F\xED\x8F\x49\x97\xB9\x82\xB5\x82\xBD\x82\xBD\x82\xDF\x82\xC9\x81\x41\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x82\xAA\x8E\x67\x82\xA6\x82\xC8\x82\xAD\x82\xC8\x82\xC1\x82\xC4\x82\xA2\x82\xDC\x82\xB7\x81\x42\n\x57\x69\x6E\x64\x6F\x77\x73\x82\xF0\x8D\xC4\x8B\x4E\x93\xAE\x82\xB5\x82\xC4\x82\xDD\x82\xC4\x82\xAD\x82\xBE\x82\xB3\x82\xA2\x81\x42\n\x83\x76\x83\x89\x83\x4F\x83\x43\x83\x93\x96\xBC\x20\x81\x46\x20\x25\x73", (DWORD) path);
		}
	}

	resFile >> mType;
	resFile >> m28;

	CFileStatus stat;
	CFile::GetStatus(path, stat);
	mTime = stat.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;
}