9
// #include "drawing.h"
15
const int MAX_FIRED_ARROWS[2]={2,3};
19
extern Bitmap *konami_bmp,*menu_bmp,*tiles_bmp,*enemy_bmp;
23
extern BYTE *col_buffer,*buffer_screen;
26
extern int STATE,SUBSTATE;
30
extern int map; /* En que mundo est� el personaje */
31
extern int map_x,map_y; /* En que habitaci�n dentro del mundo */
32
extern int pers_x,pers_y; /* Posici�n del personaje en la habitaci�n */
34
extern bool pers_right; /* Hacia donde mira el personaje */
35
extern int pers_state; /* Estado en el que se encuentra el personaje */
36
extern int pers_substate; /* Variable de estado secundaria. */
37
extern int pers_walk_state; /* Variable que controla el caminar. */
38
extern int jump_inertia;
39
extern bool sword; /* Hay que dibujar la espada? */
40
extern bool old_sword;
41
extern int sword_x,sword_y; /* Coordenadas de la espada. */
42
extern int sword_time;
43
extern unsigned char old_keyboard[SDLK_LAST];
44
extern int in_ladder; /* En qu� escalera est� el personaje */
45
extern bool previous_x_collision; /* Hubo una colisi�n en X en el frame anterior? */
46
extern bool previous_y_collision; /* Hubo una colisi�n en Y en el frame anterior? */
47
extern int hit_time; /* Contador para saber cuando pueden da�arnos de nuevo */
49
extern bool live_character[2],can_revive_character[2];
50
extern int current_weapon;
51
extern int n_fired_arrows;
54
extern int to_enter_cut;
56
extern bool shop_item[3];
57
extern int passage_state,currently_selecting;
59
extern bool room_slimes,room_watermonster,room_fallingstones,room_rollingstones;
60
extern bool room_blobs;
61
extern bool room_demonroom,old_room_demonroom;
62
extern int room_fairy,fairy_x,fairy_y;
63
extern int room_appearwall,room_appearwall_x,room_appearwall_y;
64
extern int fighting_demon,watermonster_state;
65
extern int world3_room06_counter;
67
extern bool room_demonroom,old_room_demonroom;
68
extern int fighting_demon;
70
extern int n_arrows,n_coins,n_keys;
71
extern int player_energy[2],player_experience[2],player_max[2];
72
extern int player_denergy[2],player_dexperience[2];
74
extern bool world_item[10][4];
75
extern bool cross,world_key;
76
extern int next_world;
77
extern bool world_doors_open[10];
79
extern int water_counter;
81
extern int room_size_x,room_size_y;
82
extern int *room_tiles;
85
extern int stone_tile,ladder_tile,wdoor_tile,keydoor_tile,stats_tile;
86
extern int coin_tile,arrow_tile,key_tile,door_tile;
87
extern int character_tile[2],character_tile_inv[2];
88
extern int pause_tile[2];
89
extern int colision_tile;
90
extern int sword_tile[2],explosion_tile;
91
extern int worm_tile,bat_tile,skeleton_tile,smoke_tile,slime_tile,bouncingball_tile;
92
extern int watermonster_tile,jumpingbush_tile,bluespider_tile,whitefireball_tile;
93
extern int knight_tile,blob_tile,bambu_tile,porcupine_tile,fairy_tile,witch_tile;
94
extern int whitebear_tile,feet_tile,redjumper_tile,lever_tile;
95
extern int items_tile,armas_tile,tomb_tile,wkeydoor_tile,wnokeydoor_tile;
96
extern int demonsign_tile,lupa_tile,demonsmoke_tile,demon_tile;
98
/* Transportadores: */
99
extern int lever_room_x[MAX_LEVERS];
100
extern int lever_room_y[MAX_LEVERS];
101
extern int lever_x[MAX_LEVERS];
102
extern int lever_y[MAX_LEVERS];
103
extern int lever_drx[MAX_LEVERS][2];
104
extern int lever_dry[MAX_LEVERS][2];
105
extern int lever_dx[MAX_LEVERS][2];
106
extern int lever_dy[MAX_LEVERS][2];
107
extern int lever_going_to[MAX_LEVERS];
109
extern int worm_state_tile[28];
110
extern int worm_state_tile_i[28];
111
extern int worm_state_y[28];
114
/* Efectos de sonido: */
115
extern SOUNDT S_pause,S_death,S_gameover,S_worldkey,S_entering;
116
extern SOUNDT S_gamestart,S_jump,S_sword,S_swordhit;
117
extern SOUNDT S_item,S_ah,S_powerup,S_enemyhit,S_door;
118
extern SOUNDT S_enemykill,S_ladderdisapear,S_armourhit;
119
extern SOUNDT S_enterwater,S_select,S_firearrow;
120
extern SOUNDT S_nocoins;
123
/* Control de pantalla: */
124
extern int logic_dx[4],logic_dy[4],logic_x[4],logic_y[4];
125
extern int physic_dx[4],physic_dy[4],physic_x[4],physic_y[4];
131
extern SDLKey UP_KEY,DOWN_KEY,LEFT_KEY,RIGHT_KEY;
132
extern SDLKey SWORD_KEY,WEAPON_KEY,ITEM_KEY,PAUSE_KEY;
136
void passage_mainloop(int map,int map_x,int map_y,unsigned char *screen,int dx,int dy)
138
unsigned char *keyboard;
141
keyboard = SDL_GetKeyState(NULL);
143
/* Dibujar el marco: */
148
draw(GAME_VIEW_X+i*TILE_SIZE_X,GAME_VIEW_Y,
149
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
151
draw(GAME_VIEW_X+i*TILE_SIZE_X,GAME_VIEW_Y+18*TILE_SIZE_Y,
152
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
156
draw(GAME_VIEW_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
157
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
159
draw(GAME_VIEW_X+TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
160
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
162
draw(GAME_VIEW_X+30*TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
163
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
165
draw(GAME_VIEW_X+31*TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
166
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
170
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+19*TILE_SIZE_Y,
171
TILE_SIZE_X*2,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
172
tiles[character_tile[character]+7]->
173
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+16*TILE_SIZE_Y,
174
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
176
/* Dibujar los bocadillos: */
178
draw(GAME_VIEW_X+4*TILE_SIZE_X,GAME_VIEW_Y+4*TILE_SIZE_Y,
179
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
181
draw(GAME_VIEW_X+27*TILE_SIZE_X,GAME_VIEW_Y+4*TILE_SIZE_Y,
182
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
184
draw(GAME_VIEW_X+27*TILE_SIZE_X,GAME_VIEW_Y+10*TILE_SIZE_Y,
185
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
187
draw(GAME_VIEW_X+4*TILE_SIZE_X,GAME_VIEW_Y+10*TILE_SIZE_Y,
188
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
191
draw(GAME_VIEW_X+i*TILE_SIZE_X,GAME_VIEW_Y+4*TILE_SIZE_Y,
192
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
194
draw(GAME_VIEW_X+i*TILE_SIZE_X,GAME_VIEW_Y+10*TILE_SIZE_Y,
195
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
199
draw(GAME_VIEW_X+4*TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
200
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
202
draw(GAME_VIEW_X+27*TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
203
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
206
draw(GAME_VIEW_X+11*TILE_SIZE_X,GAME_VIEW_Y+4*TILE_SIZE_Y,
207
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
210
draw(GAME_VIEW_X+4*TILE_SIZE_X,GAME_VIEW_Y+11*TILE_SIZE_Y,
211
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
213
draw(GAME_VIEW_X+27*TILE_SIZE_X,GAME_VIEW_Y+11*TILE_SIZE_Y,
214
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
216
draw(GAME_VIEW_X+27*TILE_SIZE_X,GAME_VIEW_Y+15*TILE_SIZE_Y,
217
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
219
draw(GAME_VIEW_X+4*TILE_SIZE_X,GAME_VIEW_Y+15*TILE_SIZE_Y,
220
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
223
draw(GAME_VIEW_X+i*TILE_SIZE_X,GAME_VIEW_Y+11*TILE_SIZE_Y,
224
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
226
draw(GAME_VIEW_X+i*TILE_SIZE_X,GAME_VIEW_Y+15*TILE_SIZE_Y,
227
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
231
draw(GAME_VIEW_X+4*TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
232
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
234
draw(GAME_VIEW_X+27*TILE_SIZE_X,GAME_VIEW_Y+i*TILE_SIZE_Y,
235
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
238
draw(GAME_VIEW_X+20*TILE_SIZE_X,GAME_VIEW_Y+15*TILE_SIZE_Y,
239
TILE_SIZE_X,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
241
if (map==0 && map_x==5 && map_y==9) {
243
tile_print("h F5 TO F9",TILE_SIZE_X*6,TILE_SIZE_Y*21,screen,dx,dy);
245
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
247
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
248
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
251
/* Guardar el juego a disco: */
253
if (keyboard[SDLK_F5] && !old_keyboard[SDLK_F5]) slot=1;
254
if (keyboard[SDLK_F6] && !old_keyboard[SDLK_F6]) slot=2;
255
if (keyboard[SDLK_F7] && !old_keyboard[SDLK_F7]) slot=3;
256
if (keyboard[SDLK_F8] && !old_keyboard[SDLK_F8]) slot=4;
257
if (keyboard[SDLK_F9] && !old_keyboard[SDLK_F9]) slot=5;
264
generatepassword(passwd);
266
sprintf(tmp,"sgame%.2i.txt",slot);
271
fprintf(fp,"%c",passwd[i]);
274
Sound_play(S_select);
278
if (passage_state==0) {
279
tile_print("YOU WANT THE SECRET",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
280
tile_print("CODE TO WAKEN",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
281
tile_print("MY MEMORY KEEP THE",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
282
tile_print("RECORDS ABOUT YOU?",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
283
tile_print(" YES NO",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
284
if (currently_selecting==0) {
286
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
287
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
289
if (currently_selecting==1) {
291
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
292
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
294
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
295
if (currently_selecting<1) {
296
currently_selecting++;
297
Sound_play(S_select);
300
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
301
if (currently_selecting>0) {
302
currently_selecting--;
303
Sound_play(S_select);
306
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
307
if (currently_selecting==0) passage_state=2;
308
if (currently_selecting==1) passage_state=1;
309
keyboard[SWORD_KEY]=false;
312
if (passage_state==1) {
313
tile_print("RESCUE THE BABY AS ",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
314
tile_print("SOON AS POSSIBLE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
316
if (passage_state==2) {
321
for(k=0;k<20;k++) buf[k]=' ';
322
generatepassword(passwd);
323
buf[0]=passwd[0]; buf[1]=passwd[1]; buf[2]=passwd[2]; buf[3]=passwd[3];
324
buf[5]=passwd[4]; buf[6]=passwd[5]; buf[7]=passwd[6]; buf[8]=passwd[7];
325
buf[10]=passwd[8]; buf[11]=passwd[9]; buf[12]=passwd[10]; buf[13]=passwd[11];
326
buf[15]=passwd[12]; buf[16]=passwd[13]; buf[17]=passwd[14]; buf[18]=passwd[15];
328
tile_print(buf,TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
330
buf[0]=passwd[16]; buf[1]=passwd[17]; buf[2]=passwd[18]; buf[3]=passwd[19];
331
buf[5]=passwd[20]; buf[6]=passwd[21]; buf[7]=passwd[22]; buf[8]=passwd[23];
332
buf[10]=passwd[24]; buf[11]=passwd[25]; buf[12]=passwd[26]; buf[13]=passwd[27];
333
buf[15]=passwd[28]; buf[16]=passwd[29]; buf[17]=passwd[30]; buf[18]=passwd[31];
335
tile_print(buf,TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
337
buf[0]=passwd[32]; buf[1]=passwd[33]; buf[2]=passwd[34]; buf[3]=passwd[35];
338
buf[5]=passwd[36]; buf[6]=passwd[37]; buf[7]=passwd[38]; buf[8]=passwd[39];
339
buf[10]=passwd[40]; buf[11]=passwd[41]; buf[12]=passwd[42]; buf[13]=passwd[43];
340
buf[15]=passwd[44]; buf[16]=' '; buf[17]=' '; buf[18]=' ';
342
tile_print(buf,TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
344
tile_print("DID YOU GET THEM?",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
345
tile_print(" YES",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
347
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
348
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
349
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
353
if (passage_state==3) {
354
tile_print("SEE YOU AGAIN",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
359
if (map==0 && map_x==8 && map_y==15) {
360
int price[3]={20,30,20};
363
tile_print("ARES",TILE_SIZE_X*18,TILE_SIZE_Y*5,screen,dx,dy);
365
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
366
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
368
if (passage_state==0) {
369
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
370
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
372
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
373
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
377
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
378
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
381
tiles[items_tile+30]->
382
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
383
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
386
tiles[armas_tile+4]->
387
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+8*TILE_SIZE_Y,
388
TILE_SIZE_X*2,TILE_SIZE_Y,screen,col_buffer,dx,dy,dx);
390
tile_print(" 20 30 20",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
392
if (currently_selecting==0) {
394
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
395
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
397
if (currently_selecting==1) {
399
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
400
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
402
if (currently_selecting==2) {
404
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
405
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
408
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
410
if (currently_selecting<2) {
411
currently_selecting++;
412
Sound_play(S_select);
415
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
417
if (currently_selecting>0) {
418
currently_selecting--;
419
Sound_play(S_select);
422
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
424
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
425
/* Comprar objeto: */
426
n_coins-=price[currently_selecting];
427
shop_item[currently_selecting]=false;
428
switch(currently_selecting) {
431
case 1:item[30]=true;
435
case 2:item[36]=true;
440
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
441
Sound_play(S_nocoins);
450
if (map==0 && map_x==0 && map_y==13) {
451
int price[3]={30,5,20};
454
tile_print("HEPHAESTUS",TILE_SIZE_X*15,TILE_SIZE_Y*5,screen,dx,dy);
456
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
457
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
459
if (passage_state==0) {
460
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
461
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
463
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
464
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
467
tiles[armas_tile+5]->
468
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+8*TILE_SIZE_Y,
469
screen,col_buffer,dx,dy,dx);
472
tiles[arrow_tile+1]->
473
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
474
screen,col_buffer,dx,dy,dx);
478
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
479
screen,col_buffer,dx,dy,dx);
481
tile_print(" 30 05 20",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
483
if (currently_selecting==0) {
485
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
486
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
488
if (currently_selecting==1) {
490
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
491
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
493
if (currently_selecting==2) {
495
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
496
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
499
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
501
if (currently_selecting<2) {
502
currently_selecting++;
503
Sound_play(S_select);
506
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
508
if (currently_selecting>0) {
509
currently_selecting--;
510
Sound_play(S_select);
513
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
515
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
516
/* Comprar objeto: */
517
n_coins-=price[currently_selecting];
518
shop_item[currently_selecting]=false;
519
switch(currently_selecting) {
520
case 0:item[37]=true;
529
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
530
Sound_play(S_nocoins);
539
if (map==0 && map_x==11 && map_y==10) {
541
tile_print("DEATH",TILE_SIZE_X*18,TILE_SIZE_Y*5,screen,dx,dy);
543
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
544
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
545
if ((live_character[0] || !can_revive_character[0]) &&
546
(live_character[1] || !can_revive_character[1]) && passage_state==0) {
547
tile_print("IF YOUR LOVER IS",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
548
tile_print("KILLED,COME BACK",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
549
tile_print("HERE WITH abc100,",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
550
tile_print("dec100, AND fgc20.",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
552
if (passage_state==0) {
553
tile_print("GIVE ME abc100,",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
554
tile_print("dec100 AND fgc20 IN",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
555
tile_print("RETURN FOR REVIVING",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
556
tile_print("YOUR LOVER.",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
557
tile_print(" YES NO",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
558
if (currently_selecting==0) {
560
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
561
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
563
if (currently_selecting==1) {
565
draw(GAME_VIEW_X+20 *TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
566
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
568
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
569
if (currently_selecting<1) {
570
currently_selecting++;
571
Sound_play(S_select);
574
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
575
if (currently_selecting>0) {
576
currently_selecting--;
577
Sound_play(S_select);
580
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
581
if (currently_selecting==0 && n_arrows>=100 && n_coins>=100 && n_keys>=20) {
585
can_revive_character[1-character]=false;
586
live_character[0]=live_character[1]=true;
587
player_energy[1-character]=player_max[1-character];
590
if (currently_selecting==1) passage_state=1;
591
keyboard[SWORD_KEY]=false;
595
if (passage_state==1) {
596
tile_print("THEN,YOU MUST FIGHT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
597
tile_print("ALL BY YOURSELF",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
598
tile_print("GO,RIGHT NOW.",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
601
if (passage_state==2) {
602
tile_print("YOUR LOVER HAS",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
603
tile_print("REVIVED, GO AND GET",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
604
tile_print("BACK THE LITTLE BABY",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
605
tile_print("TOGETHER. GO AHEAD!",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
611
if (map==0 && map_x==9 && map_y==7) {
612
int price[3]={20,25,5};
615
tile_print("HEPHAESTUS",TILE_SIZE_X*15,TILE_SIZE_Y*5,screen,dx,dy);
617
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
618
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
620
if (passage_state==0) {
621
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
622
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
624
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
625
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
629
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
630
screen,col_buffer,dx,dy,dx);
633
tiles[items_tile+22]->
634
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
635
screen,col_buffer,dx,dy,dx);
639
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
640
screen,col_buffer,dx,dy,dx);
642
tile_print(" 20 25 05",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
644
if (currently_selecting==0) {
646
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
647
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
649
if (currently_selecting==1) {
651
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
652
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
654
if (currently_selecting==2) {
656
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
657
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
660
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
662
if (currently_selecting<2) {
663
currently_selecting++;
664
Sound_play(S_select);
667
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
669
if (currently_selecting>0) {
670
currently_selecting--;
671
Sound_play(S_select);
674
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
676
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
677
/* Comprar objeto: */
678
n_coins-=price[currently_selecting];
679
shop_item[currently_selecting]=false;
680
switch(currently_selecting) {
683
case 1:item[22]=true;
690
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
691
Sound_play(S_nocoins);
701
if (map==0 && map_x==12 && map_y==2) {
702
int price[3]={20,50,5};
705
tile_print("ARES",TILE_SIZE_X*18,TILE_SIZE_Y*5,screen,dx,dy);
707
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
708
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
710
if (passage_state==0) {
711
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
712
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
714
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
715
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
719
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
720
screen,col_buffer,dx,dy,dx);
723
tiles[items_tile+12]->
724
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
725
screen,col_buffer,dx,dy,dx);
729
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
730
screen,col_buffer,dx,dy,dx);
732
tile_print(" 20 50 05",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
734
if (currently_selecting==0) {
736
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
737
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
739
if (currently_selecting==1) {
741
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
742
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
744
if (currently_selecting==2) {
746
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
747
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
750
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
752
if (currently_selecting<2) {
753
currently_selecting++;
754
Sound_play(S_select);
757
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
759
if (currently_selecting>0) {
760
currently_selecting--;
761
Sound_play(S_select);
764
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
766
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
767
/* Comprar objeto: */
768
n_coins-=price[currently_selecting];
769
shop_item[currently_selecting]=false;
770
switch(currently_selecting) {
773
case 1:item[12]=true;
780
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
781
Sound_play(S_nocoins);
791
if (map==0 && map_x==2 && map_y==2) {
792
int price[3]={30,20,5};
795
tile_print("HEPHAESTUS",TILE_SIZE_X*15,TILE_SIZE_Y*5,screen,dx,dy);
797
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
798
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
800
if (passage_state==0) {
801
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
802
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
804
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
805
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
808
tiles[items_tile+20]->
809
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
810
screen,col_buffer,dx,dy,dx);
814
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
815
screen,col_buffer,dx,dy,dx);
819
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
820
screen,col_buffer,dx,dy,dx);
822
tile_print(" 30 20 05",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
824
if (currently_selecting==0) {
826
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
827
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
829
if (currently_selecting==1) {
831
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
832
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
834
if (currently_selecting==2) {
836
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
837
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
841
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
843
if (currently_selecting<2) {
844
currently_selecting++;
845
Sound_play(S_select);
848
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
850
if (currently_selecting>0) {
851
currently_selecting--;
852
Sound_play(S_select);
855
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
857
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
858
/* Comprar objeto: */
859
n_coins-=price[currently_selecting];
860
shop_item[currently_selecting]=false;
861
switch(currently_selecting) {
862
case 0:item[20]=true;
871
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
872
Sound_play(S_nocoins);
881
if (map==0 && map_x==2 && map_y==5) {
882
int price[3]={20,25,5};
885
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
887
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
888
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
890
if (passage_state==0) {
891
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
892
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
894
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
895
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
899
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
900
screen,col_buffer,dx,dy,dx);
904
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
905
screen,col_buffer,dx,dy,dx);
909
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
910
screen,col_buffer,dx,dy,dx);
912
tile_print(" 20 25 05",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
914
if (currently_selecting==0) {
916
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
917
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
919
if (currently_selecting==1) {
921
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
922
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
924
if (currently_selecting==2) {
926
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
927
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
930
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
932
if (currently_selecting<2) {
933
currently_selecting++;
934
Sound_play(S_select);
937
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
939
if (currently_selecting>0) {
940
currently_selecting--;
941
Sound_play(S_select);
944
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
946
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
947
/* Comprar objeto: */
948
n_coins-=price[currently_selecting];
949
shop_item[currently_selecting]=false;
950
switch(currently_selecting) {
960
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
961
Sound_play(S_nocoins);
971
if (map==0 && map_x==12 && map_y==8) {
972
int price[3]={20,40,5};
975
tile_print("ARES",TILE_SIZE_X*18,TILE_SIZE_Y*5,screen,dx,dy);
977
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
978
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
980
if (passage_state==0) {
981
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
982
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
984
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
985
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
989
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
990
screen,col_buffer,dx,dy,dx);
993
tiles[items_tile+31]->
994
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
995
screen,col_buffer,dx,dy,dx);
999
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
1000
screen,col_buffer,dx,dy,dx);
1002
tile_print(" 20 40 05",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
1004
if (currently_selecting==0) {
1006
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1007
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1009
if (currently_selecting==1) {
1011
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1012
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1014
if (currently_selecting==2) {
1016
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1017
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1021
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
1023
if (currently_selecting<2) {
1024
currently_selecting++;
1025
Sound_play(S_select);
1028
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
1030
if (currently_selecting>0) {
1031
currently_selecting--;
1032
Sound_play(S_select);
1035
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
1037
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
1038
/* Comprar objeto: */
1039
n_coins-=price[currently_selecting];
1040
shop_item[currently_selecting]=false;
1041
switch(currently_selecting) {
1042
case 0:n_arrows+=50;
1044
case 1: item[27]=false;
1053
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
1054
Sound_play(S_nocoins);
1064
if (map==0 && map_x==8 && map_y==1) {
1065
int price[3]={20,50,5};
1068
tile_print("ARES",TILE_SIZE_X*18,TILE_SIZE_Y*5,screen,dx,dy);
1070
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1071
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1073
if (passage_state==0) {
1074
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1075
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1077
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1078
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1082
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
1083
screen,col_buffer,dx,dy,dx);
1086
tiles[items_tile+27]->
1087
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
1088
screen,col_buffer,dx,dy,dx);
1092
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
1093
screen,col_buffer,dx,dy,dx);
1095
tile_print(" 20 50 05",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
1097
if (currently_selecting==0) {
1099
draw(GAME_VIEW_X+9*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1100
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1102
if (currently_selecting==1) {
1104
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1105
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1107
if (currently_selecting==2) {
1109
draw(GAME_VIEW_X+21*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1110
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1114
if (keyboard[RIGHT_KEY] && !old_keyboard[RIGHT_KEY]) {
1116
if (currently_selecting<2) {
1117
currently_selecting++;
1118
Sound_play(S_select);
1121
if (keyboard[LEFT_KEY] && !old_keyboard[LEFT_KEY]) {
1123
if (currently_selecting>0) {
1124
currently_selecting--;
1125
Sound_play(S_select);
1128
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
1130
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
1131
/* Comprar objeto: */
1132
n_coins-=price[currently_selecting];
1133
shop_item[currently_selecting]=false;
1134
switch(currently_selecting) {
1135
case 0:n_arrows+=50;
1137
case 1: item[27]=true;
1146
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
1147
Sound_play(S_nocoins);
1157
if (map==0 && map_x==7 && map_y==7) {
1159
tile_print("ASCLEPIUS",TILE_SIZE_X*16,TILE_SIZE_Y*5,screen,dx,dy);
1161
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1162
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1164
tile_print("SEE A FAIRY TO",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1165
tile_print("RESTORE YOUR",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1166
tile_print("VITALITY.",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
1170
/* DEMETER en el mundo 1 */
1171
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1173
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1174
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1176
tile_print("TAKE A MINE WITH YOU",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1177
tile_print("WHEN YOU GO TO",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1178
tile_print("WORLD 4",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
1182
/* ATHENA en el mundo 2 */
1183
tile_print("ATHENA",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1185
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1186
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1188
tile_print("HIT THE WALL WITH",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1189
tile_print("YOURE SWORD IF YOU",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1190
tile_print("WANT TO GO TO THE",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
1191
tile_print("OPPOSITE SHORE.",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
1195
/* ATHENA en el mundo 3 */
1196
tile_print("ATHENA",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1198
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1199
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1201
tile_print("APHRODITE.DO NOT BE",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1202
tile_print("AFRAID OF WATER.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1206
/* DEMETER en el mundo 4 */
1207
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1209
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1210
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1212
tile_print("THE PURE WATER IS",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1213
tile_print("INSIDE THE WALL.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1220
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1222
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1223
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1225
if (passage_state==0) {
1226
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1227
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1229
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1230
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1233
tiles[items_tile+3]->
1234
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
1235
screen,col_buffer,dx,dy,dx);
1237
tile_print(" 30",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
1239
if (currently_selecting==0) {
1241
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1242
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1245
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
1247
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
1248
/* Comprar objeto: */
1249
n_coins-=price[currently_selecting];
1250
shop_item[currently_selecting]=false;
1254
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
1255
Sound_play(S_nocoins);
1265
/* ATHENA en el mundo 6 */
1266
tile_print("ATHENA",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1268
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1269
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1271
tile_print("HIT THE WALL WHEN",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1272
tile_print("YOU ARE HALFWAY OF",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1273
tile_print("THE STAIRS.",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
1277
/* DEMETER en el mundo 7 */
1278
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1280
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1281
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1283
tile_print("FIND THE SPELL",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1284
tile_print("WRITTEN ON A STONE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1285
tile_print("MONUMENT UNDER THE",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
1286
tile_print("WATER.",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
1293
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1295
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1296
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1298
if (passage_state==0) {
1299
tile_print("YOU CAN BUY SOME OF",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1300
tile_print("MY TREASURE",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1302
tile_print("COINS ARE NOT",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1303
tile_print("ENOUGH.",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1306
tiles[items_tile+11]->
1307
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+7*TILE_SIZE_Y,
1308
screen,col_buffer,dx,dy,dx);
1310
tile_print(" 30",TILE_SIZE_X*10,TILE_SIZE_Y*13,screen,dx,dy);
1312
if (currently_selecting==0) {
1314
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+12*TILE_SIZE_Y,
1315
TILE_SIZE_X,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1318
if (keyboard[SWORD_KEY] && !old_keyboard[SWORD_KEY]) {
1320
if (n_coins>=price[currently_selecting] && shop_item[currently_selecting]) {
1321
/* Comprar objeto: */
1322
n_coins-=price[currently_selecting];
1323
shop_item[currently_selecting]=false;
1327
if (shop_item[currently_selecting] && n_coins<price[currently_selecting]) {
1328
Sound_play(S_nocoins);
1339
/* DEMETER en el mundo 9 */
1340
tile_print("DEMETER",TILE_SIZE_X*17,TILE_SIZE_Y*5,screen,dx,dy);
1342
draw(GAME_VIEW_X+15*TILE_SIZE_X,GAME_VIEW_Y+2*TILE_SIZE_Y,
1343
TILE_SIZE_X*2,TILE_SIZE_Y*2,screen,col_buffer,dx,dy,dx);
1345
tile_print("A GATE WHICH LEADS",TILE_SIZE_X*10,TILE_SIZE_Y*9,screen,dx,dy);
1346
tile_print("TO GALIOUS WILL",TILE_SIZE_X*10,TILE_SIZE_Y*10,screen,dx,dy);
1347
tile_print("APPEAR SOMEWHERE IN",TILE_SIZE_X*10,TILE_SIZE_Y*11,screen,dx,dy);
1348
tile_print("THE CASTLE.",TILE_SIZE_X*10,TILE_SIZE_Y*12,screen,dx,dy);
1351
} /* passage_mainloop */