-
Notifications
You must be signed in to change notification settings - Fork 0
/
Draw.inc
187 lines (172 loc) · 3.38 KB
/
Draw.inc
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
; Version 3
.Data
Draw MACRO
DrawCastle 0, 0
DrawCastle 1, 103
DrawCastleHP 0
DrawCastleHP 1
DrawMoney
DrawSoldiers
PanelDisplay
Collision 0, 0, GetterHandler
ENDM
Clear MACRO
SettingColor Black
CopyFrom ClearOn, 1
;Draw
.IF( UserLevelUpFlag == 1 )
DrawCastle 0, 0
.ENDIF
.IF( CompLevelUpFlag == 1 )
DrawCastle 1, 103
.ENDIF
DrawMoney
DrawSoldiers
PanelDisplay
DrawCastleHP 0
DrawCastleHP 1
DefaultColor
CopyFrom ClearOn, 0
ENDM
PanelDisplay MACRO
.IF DebugMode == 0
DrawInfo
NoEnough_Dialog
.IF( Timer_UserBuild > 0)
Building_Dialog Beats6x
;DrawLoading Beats4x
.ENDIF
;DumpArray UserSoldierQueue
.ENDIF
ENDM
GraphDisplay MACRO String
PUSH EDX
WriteS String
POP EDX
INC DH
Call GoToXY
ENDM
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;; ;;;;
;;;; Drawing Soldiers ;;;;
;;;; ;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
.Data
SoldierOn MACRO Object, ID
ObjectOffset ID
.IF (Object[EBX].Alive == 1)
DrawHP Object, ID
.IF (Object[EBX].League == 0)
.IF (Object[EBX].Arms == 1)
DrawSoldierA Object[EBX], Beats2x
.ELSEIF (Object[EBX].Arms == 2)
DrawSoldierB Object[EBX], Beats2x
.ELSEIF (Object[EBX].Arms == 3)
DrawSoldierC Object[EBX], Beats4x
.ENDIF
.ELSEIF (Object[EBX].League == 1)
.IF (Object[EBX].Arms == 1)
DrawMonsterA Object[EBX], Beats2x
.ELSEIF (Object[EBX].Arms == 2)
DrawMonsterB Object[EBX], Beats4x
.ELSEIF (Object[EBX].Arms == 3)
DrawMonsterC Object[EBX], Beats4x
.ENDIF
.ENDIF
;WriteD MonsterWidth[((Object[EBX].Level-1)*4)+((Object[EBX].Arms-1)*12)]
;WriteD ID
;GettingSoldierWidth Object, ID, GetterHandler
;WriteD GetterHandler
.ENDIF
ENDM
HPLine DWORD ?
HPLineX DWORD ?
HPLineY DWORD ?
DrawHP MACRO Object, ID
PUSHAD
GettingSoldierX Object, ID, HPLineX
GettingSoldierHeight Object, ID, HPLineY
ObjectOffset ID
GettingSoldierHP Object, ID, HPLine
GettingSoldierPercentHP Object, ID, GetterHandler
DrawHPBar HPLine, GetterHandler
POPAD
ENDM
DrawHPBar MACRO HP, Length
PUSHAD
Translate HPLineX, HPLineY
WriteD HP
Write '['
MOV ECX, Length
.IF ECX == 1
SettingColor Red
Write 'I'
Write ' '
Write ' '
Write ' '
.ELSEIF ECX == 2
SettingColor LightRed
Write 'I'
Write 'I'
Write ' '
Write ' '
.ELSEIF ECX == 3
SettingColor Green
Write 'I'
Write 'I'
Write 'I'
Write ' '
.ELSEIF ECX == 4
SettingColor LightGreen
Write 'I'
Write 'I'
Write 'I'
Write 'I'
.ENDIF
DefaultColor
Write ']'
TranslatePrevious
POPAD
ENDM
DrawCastleHP MACRO League
PUSHAD
MOV EAX, League
.IF (EAX == 0)
CopyFrom HPLineX, 5
CopyFrom HPLineY, 10
MOV EBX, UserCastleHP
.ELSE
CopyFrom HPLineX, 105
CopyFrom HPLineY, 10
MOV EBX, CompCastleHP
.ENDIF
.IF EBX > 3750
DrawHPBar EBX, 4
.ELSEIF EBX > 2500
DrawHPBar EBX, 3
.ELSEIF EBX > 1250
DrawHPBar EBX, 2
.ELSE
DrawHPBar EBX, 1
.ENDIF
POPAD
ENDM
DrawMoney MACRO
Translate 60, 2
SettingColor Yellow
Write '$'
WriteD UserMoney
DefaultColor
TranslatePrevious
ENDM
.Code
DrawingSoldiers PROC
PUSHA
LoopTimes 0
DSs:
SoldierOn UserSoldiers, ECX
SoldierOn CompSoldiers, ECX
NextInc 8, DSs
POPA
RET
DrawingSoldiers ENDP