X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fswitch.c;h=5eebc2d7d5af164406fd0ef6af2784fe194783d8;hb=90e960736c16dc6d5031f55a7d8b0cccc6453a37;hp=275aed721c9c13437bd38955260f5c70093e3863;hpb=da79be9b6a4134aa9cd19e6f5909fedb20d318cb;p=flatwaifu.git diff --git a/src/switch.c b/src/switch.c index 275aed7..5eebc2d 100644 --- a/src/switch.c +++ b/src/switch.c @@ -28,26 +28,26 @@ #include "player.h" #include "misc.h" #include "map.h" +#include "files.h" +#include "game.h" +#include "my.h" +#include "monster.h" #define MAXSW 100 -extern map_block_t blk; - -#pragma pack(1) -typedef struct{ - byte x,y; - byte t,tm; - byte a,b,c,d; +typedef struct { + byte x, y; + byte t, tm; + byte a, b, c, d; byte f; -}sw_t; -#pragma pack() +} sw_t; -static sw_t sw[MAXSW]; +int sw_secrets; -static void *sndswn,*sndswx,*sndnoway,*sndbdo,*sndbdc,*sndnotele; +static sw_t sw[MAXSW]; +static void *sndswn, *sndswx, *sndnoway, *sndbdo, *sndbdc, *sndnotele; static int swsnd; - -int sw_secrets; +static byte cht, chto, chf, f_ch; void SW_savegame (FILE *h) { int i, n; @@ -72,49 +72,49 @@ void SW_savegame (FILE *h) { void SW_loadgame (FILE *h) { int i, n; - myfread32(&n, h); + n = myfread32(h); for (i = 0; i < n; i++) { - myfread8(&sw[i].x, h); - myfread8(&sw[i].y, h); - myfread8(&sw[i].t, h); - myfread8(&sw[i].tm, h); - myfread8(&sw[i].a, h); - myfread8(&sw[i].b, h); - myfread8(&sw[i].c, h); - myfread8(&sw[i].d, h); - myfread8(&sw[i].f, h); + sw[i].x = myfread8(h); + sw[i].y = myfread8(h); + sw[i].t = myfread8(h); + sw[i].tm = myfread8(h); + sw[i].a = myfread8(h); + sw[i].b = myfread8(h); + sw[i].c = myfread8(h); + sw[i].d = myfread8(h); + sw[i].f = myfread8(h); } - myfread32(&sw_secrets, h); + sw_secrets = myfread32(h); } int SW_load (FILE *h) { int i; switch(blk.t) { - case MB_SWITCH2: - sw_secrets = 0; - for (i = 0; i < MAXSW && blk.sz > 0; ++i, blk.sz -= 9) { - myfread8(&sw[i].x, h); - myfread8(&sw[i].y, h); - myfread8(&sw[i].t, h); - myfread8(&sw[i].tm, h); // unused - myfread8(&sw[i].a, h); - myfread8(&sw[i].b, h); - myfread8(&sw[i].c, h); - myfread8(&sw[i].d, h); // unused - myfread8(&sw[i].f, h); - sw[i].tm = 0; - sw[i].d = 0; - sw[i].f |= 0x80; - if (sw[i].t == SW_SECRET) { - ++sw_secrets; + case MB_SWITCH2: + sw_secrets = 0; + for (i = 0; i < MAXSW && blk.sz > 0; ++i, blk.sz -= 9) { + sw[i].x = myfread8(h); + sw[i].y = myfread8(h); + sw[i].t = myfread8(h); + sw[i].tm = myfread8(h); // unused + sw[i].a = myfread8(h); + sw[i].b = myfread8(h); + sw[i].c = myfread8(h); + sw[i].d = myfread8(h); // unused + sw[i].f = myfread8(h); + sw[i].tm = 0; + sw[i].d = 0; + sw[i].f |= 0x80; + if (sw[i].t == SW_SECRET) { + ++sw_secrets; + } } - } - return 1; + return 1; } return 0; } -void SW_alloc(void) { +void SW_alloc (void) { sndswn=Z_getsnd("SWTCHN"); sndswx=Z_getsnd("SWTCHX"); sndnoway=Z_getsnd("NOWAY"); @@ -123,15 +123,14 @@ void SW_alloc(void) { sndnotele=Z_getsnd("NOTELE"); } -void SW_init(void) { +void SW_init (void) { int i; - - for(i=0;iy)>=FLDH*CELH+o->h) return; @@ -165,7 +164,7 @@ void Z_water_trap(obj_t *o) { } } -void Z_untrap(byte t) { +void Z_untrap (byte t) { byte *p; word n; @@ -204,7 +203,7 @@ static int shutdoor(int i) { return 1; } -void SW_act(void) { +void SW_act (void) { int i; if(swsnd) --swsnd; @@ -232,7 +231,7 @@ static int doortime(int t) { return 0; } -void SW_cheat_open(void) { +void SW_cheat_open (void) { int i; for(i=0;i