X-Git-Url: https://deadsoftware.ru/gitweb?p=flatwaifu.git;a=blobdiff_plain;f=src%2Fgame.c;h=e952a6c319a042ab3bd5d5bc39ba38296da26e4c;hp=4ae9e11fdd949e4f9584b3bf6b51bc6b78d05bbb;hb=4a99fe51561ca331df54512eb25c502d0fcd2b55;hpb=d070670f189ec66ed2ac6b45834a192c004bc92f diff --git a/src/game.c b/src/game.c index 4ae9e11..e952a6c 100644 --- a/src/game.c +++ b/src/game.c @@ -26,7 +26,6 @@ #include #include "files.h" #include "memory.h" -#include "keyb.h" #include "sound.h" #include "view.h" #include "bmap.h" @@ -42,57 +41,45 @@ #include "misc.h" #include "map.h" #include "my.h" +#include "game.h" +#include "config.h" +#include "music.h" +#include "a8.h" +#include "error.h" +#include "input.h" -#include +#include "save.h" #define LT_DELAY 8 #define LT_HITTIME 6 #define GETIME 1092 - -int A8_start(char*); -int A8_nextframe(void); -void A8_close(void); - - -byte transdraw=0; - - -void FX_trans1(int t); -extern unsigned char fx_scr1[64000],fx_scr2[64000]; - -extern short lastkey; - - -extern int hit_xv,hit_yv; - -//void setgamma(int); - -extern int PL_JUMP; - -extern map_block_t blk; - -extern byte cheat; - -byte _2pl=0,g_dm=0,g_st=GS_TITLE,g_exit=0,g_map=1,_warp=0; -char g_music[8]="MENU"; -byte _net=0; -int g_sttm=1092; +byte transdraw; +byte _2pl; +byte g_dm; +byte g_st = GS_TITLE; +byte g_exit; +byte g_map = 1; +char g_music[8] = "MENU"; dword g_time; -int dm_pnum,dm_pl1p,dm_pl2p; +int dm_pnum; +int dm_pl1p; +int dm_pl2p; pos_t dm_pos[100]; +byte cheat; static void *telepsnd; -void *scrnh[3]; -void *cd_scr; -extern int sky_type; -void *ltn[2][2]; -int lt_time,lt_type,lt_side,lt_ypos,lt_force; -void *ltnsnd[2]; +int lt_time; +int lt_type; +int lt_side; +int lt_ypos; +static int lt_force; +static void *ltnsnd[2]; -int g_trans=0,g_transt; +int g_trans; +static int g_transt; static void set_trans(int st) { switch(g_st) { @@ -108,62 +95,8 @@ static void set_trans(int st) { g_trans=1;g_transt=0; } -void G_savegame(FILE* h) { - myfwrite8(_2pl, h); - myfwrite8(g_dm, h); - myfwrite8(g_exit, h); - myfwrite8(g_map, h); - myfwrite32(g_time, h); - myfwrite32(dm_pl1p, h); - myfwrite32(dm_pl2p, h); - myfwrite32(dm_pnum, h); - int i = 0; - while (i < dm_pnum) { - myfwrite32(dm_pos[i].x, h); - myfwrite32(dm_pos[i].y, h); - myfwrite8(dm_pos[i].d, h); - i += 1; - } - myfwrite8(cheat, h); - myfwrite(g_music, 8, 1, h); -} - -void G_loadgame(FILE* h) { - _2pl = myfread8(h); - g_dm = myfread8(h); - g_exit = myfread8(h); - g_map = myfread8(h); - g_time = myfread32(h); - dm_pl1p = myfread32(h); - dm_pl2p = myfread32(h); - dm_pnum = myfread32(h); - int i = 0; - while (i < dm_pnum) { - dm_pos[i].x = myfread32(h); - dm_pos[i].y = myfread32(h); - dm_pos[i].d = myfread8(h); - i += 1; - } - cheat = myfread8(h); - myfread(g_music, 8, 1, h); - F_loadmus(g_music); -} - -int G_load (FILE *h) { - switch (blk.t) { - case MB_MUSIC: - myfread(g_music, 8, 1, h); - if (music_random) { - F_randmus(g_music); - } - F_loadmus(g_music); - return 1; - } - return 0; -} - -void load_game(int n) { - F_freemus(); +void load_game (int n) { + MUS_free(); W_init(); F_loadgame(n); set_trans(GS_GAME); @@ -174,13 +107,13 @@ void load_game(int n) { BM_mark(&pl1.o,BM_PLR1); if(_2pl) BM_mark(&pl2.o,BM_PLR2); MN_mark(); - S_startmusic(music_time); + //MUS_start(music_time); + MUS_start(0); } -void G_start(void) { +void G_start (void) { char s[8]; - - F_freemus(); + MUS_free(); sprintf(s,"MAP%02u",(word)g_map); F_loadmap(s); set_trans(GS_GAME); @@ -198,12 +131,13 @@ void G_start(void) { BM_mark(&pl1.o,BM_PLR1); if(_2pl) BM_mark(&pl2.o,BM_PLR2); MN_mark(); - S_startmusic(music_time); + //MUS_start(music_time); + MUS_start(0); } #define GGAS_TOTAL (MN__LAST-MN_DEMON+16+10) -void G_init(void) { +void G_init (void) { int i,j; char s[9]; @@ -229,7 +163,7 @@ void G_init(void) { g_trans=0; } -int G_beg_video(void) { +static int G_beg_video (void) { /* switch(g_map) { case 3: return A8_start("FALL"); @@ -255,7 +189,7 @@ int G_beg_video(void) { } -int G_end_video(void) { +static int G_end_video (void) { /* switch(g_map) { case 1: return A8_start("TRUBA"); @@ -265,8 +199,7 @@ int G_end_video(void) { return 0; } - -void G_act(void) { +void G_act (void) { static byte pcnt=0; /* if(g_trans) { @@ -288,8 +221,8 @@ void G_act(void) { if(g_st==GS_BVIDEO || g_st==GS_EVIDEO) { - if(!A8_nextframe() || lastkey==SDLK_ESCAPE) { - if(lastkey==SDLK_ESCAPE) lastkey=0; + if (!A8_nextframe() || lastkey == KEY_ESCAPE) { + if (lastkey == KEY_ESCAPE) lastkey = KEY_UNKNOWN; A8_close(); if(g_st==GS_BVIDEO) G_start(); else goto inter; @@ -302,7 +235,8 @@ void G_act(void) { case GS_ENDANIM: g_st=GS_DARKEN;break; case GS_END2ANIM: g_st=GS_END3ANIM;A8_start("KONEC");break; case GS_END3ANIM: g_st=GS_ENDSCR;lastkey=0;break; - }g_sttm=0;return; + } + return; } // V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200); return; @@ -325,10 +259,14 @@ void G_act(void) { set_trans(GS_TITLE); } #else - if(keys[SDLK_SPACE] || keys[SDLK_RETURN] || keys[SDLK_KP_ENTER])//if(keys[0x39] || keys[0x1C] || keys[0x9C]) - if(!G_beg_video()) G_start(); else { - g_st=GS_BVIDEO;F_freemus(); + if (I_pressed(KEY_SPACE) || I_pressed(KEY_RETURN) || I_pressed(KEY_KP_ENTER)) { + if (!G_beg_video()) { + G_start(); + } else { + g_st = GS_BVIDEO; + MUS_free(); } + } #endif return; } @@ -382,7 +320,7 @@ void G_act(void) { if(g_exit==1) { if(G_end_video()) { - F_freemus(); + MUS_free(); g_st=GS_EVIDEO; return; } @@ -393,20 +331,23 @@ inter: case 31: case 32: g_map=16;set_trans(GS_INTER);break; default: ++g_map;set_trans(GS_INTER);break; } - F_freemus(); - if(g_st==GS_INTER) { - F_loadmus("INTERMUS"); - }else {F_loadmus("\x8a\x8e\x8d\x85\x96\x0");if(mus_vol>0) {S_volumemusic(128);} } - S_startmusic(0); + MUS_free(); + if (g_st == GS_INTER) { + MUS_load("INTERMUS"); + } else { + MUS_load("\x8a\x8e\x8d\x85\x96\x0"); + MUS_volume(128); + } + MUS_start(0); }else if(g_exit==2) { switch(g_map) { case 31: g_map=32;set_trans(GS_INTER);break; case 32: g_map=16;set_trans(GS_INTER);break; default: g_map=31;set_trans(GS_INTER);break; } - F_freemus(); - F_loadmus("INTERMUS"); - S_startmusic(0); + MUS_free(); + MUS_load("INTERMUS"); + MUS_start(0); } #ifdef DEMO @@ -414,7 +355,7 @@ inter: #endif } -void G_respawn_player(player_t *p) { +void G_respawn_player (player_t *p) { int i; if(dm_pnum==2) {