-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserFileAPI.h
More file actions
78 lines (61 loc) · 1.56 KB
/
UserFileAPI.h
File metadata and controls
78 lines (61 loc) · 1.56 KB
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
#pragma once
// Единый API для DLL UserFile.dll и игрового EXE.
// Этот заголовок должен подключаться И в проект DLL, И в основной проект.
#pragma pack(push, 1)
enum TUserStatus
{
UStatNotExists = 0,
UStatExists,
UStatWrongPassword
};
// Общий статус файла для DLL и игры
enum TFileStatus : unsigned char
{
FsOK = 0,
FsNotFound,
FsLocked,
FsInvalidSignature
};
struct TTowerFile
{
// Tower data persisted to disk
int TowerType; // corresponds to TTowerTypes in game (stored as int)
int Upgrades[3]; // [0]=dmg, [1]=speed, [2]=range
int Damage;
int Distance;
int ATKSpeed;
};
struct TUserFile
{
char Login[32];
char Password[32];
int Money;
int Wave;
int HP;
TTowerFile Towers[10];
};
#pragma pack(pop)
#ifdef USERFILE_EXPORTS
#define USERFILE_API __declspec(dllexport)
#else
#define USERFILE_API __declspec(dllimport)
#endif
extern "C" {
USERFILE_API bool __stdcall OpenUsersFile(void** F, TFileStatus* Status);
USERFILE_API bool __stdcall CreateNewUser(
const char* Login,
const char* Password,
TFileStatus* Status);
USERFILE_API TUserStatus __stdcall SearchForTheUser(
const char* Login,
const char* Password,
TFileStatus* Status);
USERFILE_API void __stdcall GetUserInfo(
const char* Login,
const char* Password,
TFileStatus* Status,
TUserFile* OutUser);
USERFILE_API bool __stdcall SaveUserFile(
const TUserFile* User,
TFileStatus* Status);
}