diff --git a/src/game.c b/src/game.c
index 1846b5760ee06854dd05e1b8d2f84fbe7828bf20..4ae9e11fdd949e4f9584b3bf6b51bc6b78d05bbb 100644 (file)
--- a/src/game.c
+++ b/src/game.c
#include <string.h>
#include "files.h"
#include "memory.h"
#include <string.h>
#include "files.h"
#include "memory.h"
-#include "vga.h"
#include "keyb.h"
#include "sound.h"
#include "view.h"
#include "keyb.h"
#include "sound.h"
#include "view.h"
#include "menu.h"
#include "misc.h"
#include "map.h"
#include "menu.h"
#include "misc.h"
#include "map.h"
+#include "my.h"
#include <SDL_keysym.h>
#include <SDL_keysym.h>
void A8_close(void);
void A8_close(void);
+byte transdraw=0;
+
+
void FX_trans1(int t);
extern unsigned char fx_scr1[64000],fx_scr2[64000];
void FX_trans1(int t);
extern unsigned char fx_scr1[64000],fx_scr2[64000];
extern int hit_xv,hit_yv;
extern int hit_xv,hit_yv;
-extern vgapal std_pal;
-void setgamma(int);
-
-extern int sw_secrets;
-
-#define PL_FLASH 90
+//void setgamma(int);
extern int PL_JUMP;
extern map_block_t blk;
extern int PL_JUMP;
extern map_block_t blk;
-extern byte clrmap[256*12];
-
extern byte cheat;
extern byte cheat;
-byte _2pl=0,g_dm=0,g_st=GS_TITLE,g_exit=0,g_map=1,_warp=0,g_music[8]="MENU";
+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;
dword g_time;
byte _net=0;
int g_sttm=1092;
dword g_time;
pos_t dm_pos[100];
static void *telepsnd;
pos_t dm_pos[100];
static void *telepsnd;
-static void *scrnh[3];
+void *scrnh[3];
void *cd_scr;
extern int sky_type;
void *cd_scr;
extern int sky_type;
}
void G_loadgame(FILE* h) {
}
void G_loadgame(FILE* h) {
- myfread8(&_2pl, h);
- myfread8(&g_dm, h);
- myfread8(&g_exit, h);
- myfread8(&g_map, h);
- myfread32(&g_time, h);
- myfread32(&dm_pl1p, h);
- myfread32(&dm_pl2p, h);
- myfread32(&dm_pnum, 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) {
int i = 0;
while (i < dm_pnum) {
- myfread32(&dm_pos[i].x, h);
- myfread32(&dm_pos[i].y, h);
- myfread8(&dm_pos[i].d, h);
+ dm_pos[i].x = myfread32(h);
+ dm_pos[i].y = myfread32(h);
+ dm_pos[i].d = myfread8(h);
i += 1;
}
i += 1;
}
- myfread8(&cheat, h);
+ cheat = myfread8(h);
myfread(g_music, 8, 1, h);
F_loadmus(g_music);
}
myfread(g_music, 8, 1, h);
F_loadmus(g_music);
}
W_init();
F_loadgame(n);
set_trans(GS_GAME);
W_init();
F_loadgame(n);
set_trans(GS_GAME);
- V_setscr((g_trans)?fx_scr2:scrbuf);V_setrect(0,SCRW,0,SCRH);//V_setrect(0,320,0,200);
- V_clr(0,SCRW,0,SCRH,0);//V_clr(0,320,0,200,0);
- if(_2pl) {w_o=0;Z_clrst();w_o=SCRH/2;Z_clrst();}//if(_2pl) {w_o=0;Z_clrst();w_o=100;Z_clrst();}
- else {w_o=0;Z_clrst();}//else {w_o=50;Z_clrst();}
- V_setscr(scrbuf);
pl1.drawst=0xFF;
if(_2pl) pl2.drawst=0xFF;
BM_remapfld();
pl1.drawst=0xFF;
if(_2pl) pl2.drawst=0xFF;
BM_remapfld();
sprintf(s,"MAP%02u",(word)g_map);
F_loadmap(s);
set_trans(GS_GAME);
sprintf(s,"MAP%02u",(word)g_map);
F_loadmap(s);
set_trans(GS_GAME);
- V_setscr((g_trans)?fx_scr2:scrbuf);V_setrect(0,SCRW,0,SCRH);//V_setrect(0,320,0,200);
- V_clr(0,SCRW,0,SCRH,0);//V_clr(0,320,0,200,0);
- if(_2pl) {w_o=0;Z_clrst();w_o=SCRH/2;Z_clrst();}//if(_2pl) {w_o=0;Z_clrst();w_o=100;Z_clrst();}
- else {w_o=0;Z_clrst();}//else {w_o=50;Z_clrst();}
- V_setscr(scrbuf);
pl1.drawst=0xFF;
if(_2pl) pl2.drawst=0xFF;
g_exit=0;
pl1.drawst=0xFF;
if(_2pl) pl2.drawst=0xFF;
g_exit=0;
logo("G_init: настройка ресурсов игры ");
logo_gas(5,GGAS_TOTAL);
telepsnd=Z_getsnd("TELEPT");
logo("G_init: настройка ресурсов игры ");
logo_gas(5,GGAS_TOTAL);
telepsnd=Z_getsnd("TELEPT");
- scrnh[0]=V_loadvgaimg("TITLEPIC");
- scrnh[1]=V_loadvgaimg("INTERPIC");
- scrnh[2]=V_loadvgaimg("ENDPIC");
- cd_scr=V_loadvgaimg("CD1PIC");
- for(i=0;i<2;++i) {
- sprintf(s,"LTN%c",i+'1');
- for(j=0;j<2;++j)
- ltn[i][j]=Z_getspr(s,j,0,NULL);
- }
ltnsnd[0]=Z_getsnd("THUND1");
ltnsnd[1]=Z_getsnd("THUND2");
DOT_alloc();
ltnsnd[0]=Z_getsnd("THUND1");
ltnsnd[1]=Z_getsnd("THUND2");
DOT_alloc();
}
}
-static byte transdraw=0;
-
void G_act(void) {
static byte pcnt=0;
/*
void G_act(void) {
static byte pcnt=0;
/*
if(g_st==GS_BVIDEO) G_start();
else goto inter;
}
if(g_st==GS_BVIDEO) G_start();
else goto inter;
}
- V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200);
+// V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200);
return;
}else if(g_st==GS_ENDANIM || g_st==GS_END2ANIM || g_st==GS_END3ANIM) {
if(!A8_nextframe()) {
return;
}else if(g_st==GS_ENDANIM || g_st==GS_END2ANIM || g_st==GS_END3ANIM) {
if(!A8_nextframe()) {
case GS_END3ANIM: g_st=GS_ENDSCR;lastkey=0;break;
}g_sttm=0;return;
}
case GS_END3ANIM: g_st=GS_ENDSCR;lastkey=0;break;
}g_sttm=0;return;
}
- V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200);
+// V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200);
return;
}else if(g_st==GS_DARKEN) {
g_st=GS_END2ANIM;A8_start("CREDITS");
return;
}else if(g_st==GS_DARKEN) {
g_st=GS_END2ANIM;A8_start("CREDITS");
if(_2pl) {pl2.hit=0;pl2.hito=-3;}
G_code();
if(_2pl) {pl2.hit=0;pl2.hito=-3;}
G_code();
- W_act();
IT_act();
SW_act();
if(_2pl) {
IT_act();
SW_act();
if(_2pl) {
#endif
}
#endif
}
-/*
-static void drawview(player_t *p) {
- if(p->looky<-50) p->looky=-50;
- else if(p->looky>50) p->looky=50;
- w_x=p->o.x;w_y=p->o.y-12+p->looky;W_draw();PL_drawst(p);
-}
-*/
-static void drawview(player_t *p) {
- if(p->looky<-SCRH/4) p->looky=-SCRH/4;
- else if(p->looky>SCRH/4) p->looky=SCRH/4;
- w_x=p->o.x;w_y=p->o.y-12+p->looky;
- W_draw();
- PL_drawst(p);
-}
-
-static int get_pu_st(int t) {
- if(t>=PL_FLASH) return 1;
- if((t/9)&1) return 0;
- return 1;
-}
-
-static void pl_info(player_t *p,int y) {
- dword t;
-
- t=p->kills*10920/g_time;
- Z_gotoxy(25,y);Z_printbf("KILLS");//Z_gotoxy(25,y);Z_printbf("KILLS");
- Z_gotoxy(25,y+15);Z_printbf("KPM");//Z_gotoxy(25,y+15);Z_printbf("KPM");
- Z_gotoxy(25,y+30);Z_printbf("SECRETS %u / %u",p->secrets,sw_secrets);//Z_gotoxy(25,y+30);Z_printbf("SECRETS %u / %u",p->secrets,sw_secrets);
- Z_gotoxy(255,y);Z_printbf("%u",p->kills);//Z_gotoxy(255,y);Z_printbf("%u",p->kills);
- Z_gotoxy(255,y+15);Z_printbf("%u.%u",t/10,t%10);//Z_gotoxy(255,y+15);Z_printbf("%u.%u",t/10,t%10);
-}
-
-void G_draw(void) {
- int h;
- word hr,mn,sc;
-
- if(g_trans && !transdraw) return;
- switch(g_st) {
- case GS_ENDANIM: case GS_END2ANIM: case GS_DARKEN:
- case GS_BVIDEO: case GS_EVIDEO: case GS_END3ANIM:
- return;
- case GS_TITLE:
- V_center(1);//
- V_pic(0,0,scrnh[0]);
- V_center(0);//
- break;
- case GS_ENDSCR:
- V_center(1);//
- V_clr(0,SCRW,0,SCRH,0);V_pic(0,0,scrnh[2]);//V_clr(0,320,0,200,0);V_pic(0,0,scrnh[2]);
- V_center(0);//
- break;
- case GS_INTER:
- V_center(1);//
- V_clr(0,SCRW,0,SCRH,0);//
- V_pic(0,0,scrnh[1]);
- Z_gotoxy(60,20);Z_printbf("LEVEL COMPLETE");
- Z_calc_time(g_time,&hr,&mn,&sc);
- Z_gotoxy(115,40);Z_printbf("TIME %u:%02u:%02u",hr,mn,sc);
- h=60;
- if(_2pl) {
- Z_gotoxy(80,h);Z_printbf("PLAYER ONE");
- Z_gotoxy(80,h+70);Z_printbf("PLAYER TWO");
- h+=SCRH/10;//h+=20;
- }
- pl_info(&pl1,h);
- if(_2pl) pl_info(&pl2,h+70);
- V_center(0);//
- break;
- }
- V_center(1);//
- if(g_st!=GS_GAME) {
- if(g_trans) return;
- GM_draw();
- V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200);
- return;
- }
- V_center(0);//
-
- if(_2pl) {
- w_o=0;WD=SCRW-120;HT=SCRH/2-2;drawview(&pl1);//w_o=0;drawview(&pl1);
- w_o=SCRH/2;WD=SCRW-120;HT=SCRH/2-2;drawview(&pl2);//w_o=100;drawview(&pl2);
- }else{
- w_o=0;WD=SCRW-120;HT=SCRH-2;drawview(&pl1);//w_o=50;drawview(&pl1);
- }
- if(g_trans) return;
- V_center(1);//
- if(GM_draw()) {
- pl1.drawst=pl2.drawst=0xFF;//pl1.drawst=pl2.drawst=0;
- V_copytoscr(0,SCRW,0,SCRH);//V_copytoscr(0,320,0,200);
- return;
- }
- V_center(0);//
- if(pl1.invl) h=get_pu_st(pl1.invl)*6;
- else if(pl1.pain<15) h=0;
- else if(pl1.pain<35) h=1;
- else if(pl1.pain<55) h=2;
- else if(pl1.pain<75) h=3;
- else if(pl1.pain<95) h=4;
- else h=5;
- if(h) V_maptoscr(0,SCRW-120,1,(_2pl)?(SCRH/2-2):(SCRH-2),clrmap+h*256);//if(h) V_maptoscr(0,200,(_2pl)?1:51,98,clrmap+h*256);
- else V_copytoscr(0,SCRW-120,1,(_2pl)?(SCRH/2-2):(SCRH-2)); //else V_copytoscr(0,200,(_2pl)?1:51,98);
- if(pl1.drawst) V_copytoscr(SCRW-120,120,0,_2pl?(SCRH/2):SCRH);//if(pl1.drawst) V_copytoscr(200,120,(_2pl)?0:50,100);
- pl1.drawst=0xFF;//pl1.drawst=0;
- if(_2pl) {
- if(pl2.invl) h=get_pu_st(pl2.invl)*6;
- else if(pl2.pain<15) h=0;
- else if(pl2.pain<35) h=1;
- else if(pl2.pain<55) h=2;
- else if(pl2.pain<75) h=3;
- else if(pl2.pain<95) h=4;
- else h=5;
- if(h) V_maptoscr(0,SCRW-120,SCRH/2+1,SCRH/2-2,clrmap+h*256);//if(h) V_maptoscr(0,200,101,98,clrmap+h*256);
- else V_copytoscr(0,SCRW-120,SCRH/2+1,SCRH/2-2);//else V_copytoscr(0,200,101,98);
- if(pl2.drawst) V_copytoscr(SCRW-120,120,SCRH/2,SCRH/2);//if(pl2.drawst) V_copytoscr(200,120,100,100);
- pl2.drawst=0xFF;//pl2.drawst=0;
- }
-}
-
void G_respawn_player(player_t *p) {
int i;
void G_respawn_player(player_t *p) {
int i;