3 #include "spritemaps.h"
10 #define GRID_START_X (0*SCALE)
11 #define GRID_START_Y (SCREEN_MIN_Y + 16*SCALE)
13 static struct { int x
, y
; } ws_cursor
;
15 static void draw_ws_grid() {
17 for(i
= 0, y
= GRID_START_Y
; i
< 9; i
++, y
+=23*SCALE
) {
18 if(i
== 7) y
+=21*SCALE
;
19 else if(i
== 8) y
-=8*SCALE
;
20 blit_sprite(GRID_START_X
, y
, &video
, SCALE
, spritemaps
[SI_WS_HBAR6
], 0, 0);
21 blit_sprite(GRID_START_X
+(6+308)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_HBAR6
], 1, 0);
23 #define X (GRID_START_X+6*SCALE)
24 for(i
= 0, y
= GRID_START_Y
-1*SCALE
; i
< 9; i
++, y
+=23*SCALE
) {
25 if(i
== 7) y
+=21*SCALE
;
26 else if(i
== 8) y
-=8*SCALE
;
27 for(x
=X
; x
<X
+308*SCALE
;x
+=SCALE
)
28 blit_sprite(x
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 0, 0);
31 for(i
= 0, y
= GRID_START_Y
+3*SCALE
; i
< 8; i
++, y
+=23*SCALE
) {
32 if(i
== 7) y
+=21*SCALE
;
33 blit_sprite(GRID_START_X
+1*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 1, 0);
34 blit_sprite(GRID_START_X
+(1+317)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 1, 0);
36 for(i
= 0, y
= GRID_START_Y
+19*SCALE
; i
< 8; i
++, y
+=23*SCALE
) {
37 if(i
== 6) y
+=21*SCALE
;
38 else if(i
== 7) y
-=8*SCALE
;
39 blit_sprite(GRID_START_X
+1*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 2, 0);
40 blit_sprite(GRID_START_X
+(1+317)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 2, 0);
42 for(i
= 0, y
= GRID_START_Y
+7*SCALE
; i
< 8; i
++, y
+=23*SCALE
) {
43 if(i
== 7) y
+=21*SCALE
;
44 blit_sprite(GRID_START_X
+1*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
45 blit_sprite(GRID_START_X
+(1+317)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
47 for(i
= 0, y
= GRID_START_Y
+11*SCALE
; i
< 7; i
++, y
+=23*SCALE
) {
48 blit_sprite(GRID_START_X
+1*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
49 blit_sprite(GRID_START_X
+(1+317)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
51 for(i
= 0, y
= GRID_START_Y
+15*SCALE
; i
< 7; i
++, y
+=23*SCALE
) {
52 blit_sprite(GRID_START_X
+1*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
53 blit_sprite(GRID_START_X
+(1+317)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
55 for(i
= 0, y
= GRID_START_Y
+(138+3+4+3*4)*SCALE
; i
< 6; i
++, y
+=4*SCALE
) {
56 if(i
== 5) y
-=3*SCALE
;
57 blit_sprite(GRID_START_X
+1*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
58 blit_sprite(GRID_START_X
+(1+317)*SCALE
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR1
], 3, 0);
60 for(i
= 0, y
= GRID_START_Y
+21*SCALE
; i
< 5; i
++, y
+=23*SCALE
) {
61 for(x
=GRID_START_X
+61*SCALE
; x
<260*SCALE
;x
+=64*SCALE
)
62 blit_sprite(x
, y
, &video
, SCALE
, spritemaps
[SI_WS_BOLT
], 0, 0);
64 for(i
= 0, y
= GRID_START_Y
+23*SCALE
; i
< 5; i
++, y
+=23*SCALE
) {
65 for(x
=GRID_START_X
+51*SCALE
; x
<260*SCALE
;x
+=64*SCALE
)
66 blit_sprite(x
, y
, &video
, SCALE
, spritemaps
[SI_WS_HBAR10
], 0, 0);
68 for(i
= 0, y
= GRID_START_Y
+23*SCALE
; i
< 5; i
++, y
+=23*SCALE
) {
69 for(x
=GRID_START_X
+68*SCALE
; x
<280*SCALE
;x
+=64*SCALE
)
70 blit_sprite(x
, y
, &video
, SCALE
, spritemaps
[SI_WS_HBAR10
], 1, 0);
73 for(x
= GRID_START_X
+63*SCALE
; x
<GRID_START_X
+280*SCALE
; x
+=64*SCALE
) {
74 blit_sprite(x
, GRID_START_Y
+3*SCALE
, &video
, SCALE
, spritemaps
[SI_WS_VBAR3
], 2, 0);
76 for(x
= GRID_START_X
+63*SCALE
; x
<GRID_START_X
+280*SCALE
; x
+=64*SCALE
) {
77 blit_sprite(x
, GRID_START_Y
+128*SCALE
, &video
, SCALE
, spritemaps
[SI_WS_VBAR3
], 3, 0);
79 for(i
= 0, y
= GRID_START_Y
+13*SCALE
; i
< 5; i
++, y
+=23*SCALE
) {
80 for(x
= GRID_START_X
+63*SCALE
; x
<GRID_START_X
+280*SCALE
; x
+=64*SCALE
) {
81 blit_sprite(x
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR3
], 1, 0);
84 for(i
= 0, y
= GRID_START_Y
+26*SCALE
; i
< 5; i
++, y
+=23*SCALE
) {
85 for(x
= GRID_START_X
+63*SCALE
; x
<GRID_START_X
+280*SCALE
; x
+=64*SCALE
) {
86 blit_sprite(x
, y
, &video
, SCALE
, spritemaps
[SI_WS_VBAR3
], 0, 0);
91 static void draw_ws_text_sprites() {
92 blit_sprite(GRID_START_X
+31*SCALE
, GRID_START_Y
+186*SCALE
, &video
, SCALE
, spritemaps
[SI_WS_COSTCREDIT
], 0, 0);
93 blit_sprite(GRID_START_X
+150*SCALE
, GRID_START_Y
+186*SCALE
, &video
, SCALE
, spritemaps
[SI_WS_COSTCREDIT
], 1, 0);
96 static void draw_ws_weapons() {
98 const struct palpic
* p
= spritemaps
[SI_WEAPONSHOP
];
100 for(yy
= 0, y
= GRID_START_Y
+5*SCALE
; yy
< 6; y
+=23*SCALE
, yy
++) {
101 for(xx
= 0, x
= GRID_START_X
+3*SCALE
; xx
< 5; x
+=64*SCALE
, xx
++) {
102 blit_sprite(x
, y
, &video
, SCALE
, p
, img
, 0);
108 static void draw_ws_stuff() {
111 draw_ws_text_sprites();
116 static void shop_tick(void) {
118 if (audio_process() == -1) music_restart();
122 static void weapon_shop(void) {
126 while (SDL_PollEvent(&sdl_event
)) {
127 switch (sdl_event
.type
) {
128 case SDL_MOUSEMOTION
:
129 ws_cursor
.x
= sdl_event
.motion
.x
;
130 ws_cursor
.y
= sdl_event
.motion
.y
;
132 case SDL_MOUSEBUTTONDOWN
:
133 dprintf(2, "click on %d,%d\n", ws_cursor
.x
/SCALE
-x
, ws_cursor
.y
/SCALE
-y
);
134 //if((ret = cursor_on_map(x, y, completed)) != MI_INVALID) goto dun_goofed;
139 switch(sdl_event
.key
.keysym
.sym
) {
141 if((sdl_event
.key
.keysym
.mod
& KMOD_LALT
) ||
142 (sdl_event
.key
.keysym
.mod
& KMOD_RALT
)) {