-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata.inc
147 lines (99 loc) · 3.06 KB
/
data.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
.CONST
xlen EQU 1280
ylen EQU 720
winMode EQU 0
;Window info
black EQU 0
;colors
playerW EQU 20
playerH EQU 160
xhitbox EQU xlen - playerW
yhitbox EQU ylen - playerH
playerMid EQU yhitbox / 2
;Pong player info
ballBorder EQU 20
ballMidX EQU (xlen - ballBorder) / 2
ballMidY EQU (ylen - ballBorder) / 2
ballSpeed EQU 2
;Pong ball info
PKEY EQU 50h
RKEY EQU 52h
SKEY EQU 53h
WKEY EQU 57h
space EQU VK_SPACE
upArrow EQU VK_UP
downArrow EQU VK_DOWN
escape EQU VK_ESCAPE
;Keyboard key constants
endScore EQU 10
scoreBorder EQU 50
spacing EQU 10
p1ScorePos EQU ((xlen / 2) - (scoreBorder * 3))
p1ScorePos2 EQU ((xlen / 2) - (scoreBorder * 4) - spacing)
p2ScorePos EQU ((xlen / 2) + (scoreBorder * 3) + spacing)
p2ScorePos2 EQU ((xlen / 2) + (scoreBorder * 2))
;Score stuff
msgBorderX EQU 220
msgBorderY EQU 46
resBorderX EQU 403
resBorderY EQU 34
startBorderX EQU 500
startBorderY EQU 400
;Resolutions for on screen messages
startX EQU ((xlen - startBorderX) / 2)
startY EQU ((ylen - startBorderY) / 2)
restX EQU ((xlen - resBorderX) / 2)
restY EQU ((ylen - resBorderY) / 2)
p2Msg EQU (xlen - msgBorderX)
;Positions for on screen messages
.DATA
hddBG BYTE "bg2.bmp", 0
hddPlayer BYTE "pongp.bmp", 0
hddBall BYTE "ball.bmp", 0
hddScores BYTE "score.bmp", 0
hddWin BYTE "winmsg.bmp", 0
hddLose BYTE "losemsg.bmp", 0
hddRes BYTE "resmsg.bmp", 0
hddStart BYTE "start.bmp", 0
;Saves locations of images to memory as bytes
hddMusic BYTE "music.wav", 0
hddEnd BYTE "end.wav", 0
;Locations of music files
p1Score DWORD 0, 0
p2Score DWORD 0, 0
;Scores
pScored BYTE 1, 0
endTheGame BYTE 0, 0
restarted BYTE 0, 0
;Bytes acting as booleans
Keys STRUCT
Up DWORD ?
Down DWORD ?
Keys ENDS
Character STRUCT
pos POINT<>;0->4 x 4->8 y
drc POINT<>;8->12 x 12->16 y
button Keys<>;16->20 upKey 20->24 downKey
info Img<>;24->44 image
src POINT<>;44->48 x 48->52 y
srcend POINT<>;52->56x 56->60 y
Character ENDS
;Struct for characters - kinda like an object
menu Character<<startX, startY>,<>,<>,<>,<>,<>>
resMsg Character<<restX, restY>,<>,<>,<>,<>,<>>
winMsg Character<<>,<>,<>,<>,<>,<>>
loseMsg Character<<>,<>,<>,<>,<>,<>>
;Characters for on screen messages
BG1 Character<<(xlen / 2), 0>,<0,0>,<upArrow, downArrow>,<>,<>,<>>
BG2 Character<<(-xlen / 2), 0>,<0,0>,<upArrow, downArrow>,<>,<>,<>>
;Characters for background
player1 Character<<playerW * 2, playerMid>,<0,0>,<WKEY, SKEY>,<>,<>,<>>
player2 Character<<xlen - (playerW * 3), playerMid>,<0,0>,<upArrow, downArrow>,<>,<>,<>>
;Characters for the players
ball Character<<ballMidX, ballMidY>,<ballSpeed, ballSpeed>,<>,<>,<>,<>>
;Character for the ball
scoreImgP1 Character<<p1ScorePos, 0>,<0,0>,<>,<>,<0,0>,<scoreBorder, scoreBorder>>
scoreImgP2 Character<<p2ScorePos, 0>,<0,0>,<>,<>,<0,0>,<scoreBorder, scoreBorder>>
scoreImgP12 Character<<p1ScorePos2, 0>,<0,0>,<>,<>,<0,0>,<scoreBorder, scoreBorder>>
scoreImgP22 Character<<p2ScorePos2, 0>,<0,0>,<>,<>,<0,0>,<scoreBorder, scoreBorder>>
;Characters for each score counter - it's messy but it works