1 //-------------------------------------------------------------------------
2 /*
3 Copyright (C) 2010-2019 EDuke32 developers and contributors
4 Copyright (C) 2019 Nuke.YKT
5 
6 This file is part of NBlood.
7 
8 NBlood is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License version 2
10 as published by the Free Software Foundation.
11 
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15 
16 See the GNU General Public License for more details.
17 
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 */
22 //-------------------------------------------------------------------------
23 #pragma once
24 #include "build.h"
25 #include "common.h"
26 #include "common_game.h"
27 
28 #include "blood.h"
29 #include "db.h"
30 #include "eventq.h"
31 #include "dude.h"
32 #include "player.h"
33 
34 enum BUSYID {
35     BUSYID_0 = 0,
36     BUSYID_1,
37     BUSYID_2,
38     BUSYID_3,
39     BUSYID_4,
40     BUSYID_5,
41     BUSYID_6,
42     BUSYID_7,
43 };
44 
45 #define kMaxBusyCount 128
46 struct BUSY {
47     int at0;
48     int at4;
49     int at8;
50     BUSYID atc;
51 };
52 
53 extern BUSY gBusy[kMaxBusyCount];
54 extern int gBusyCount;
55 
56 void trTriggerSector(unsigned int nSector, XSECTOR *pXSector, int command);
57 void trMessageSector(unsigned int nSector, EVENT event);
58 void trTriggerWall(unsigned int nWall, XWALL *pXWall, int command);
59 void trMessageWall(unsigned int nWall, EVENT event);
60 void trTriggerSprite(unsigned int nSprite, XSPRITE *pXSprite, int command);
61 void trMessageSprite(unsigned int nSprite, EVENT event);
62 void trProcessBusy(void);
63 void trInit(void);
64 void trTextOver(int nId);
65 char SetSpriteState(int nSprite, XSPRITE* pXSprite, int nState);
66 char SetWallState(int nWall, XWALL* pXWall, int nState);
67 char SetSectorState(int nSector, XSECTOR* pXSector, int nState);
68 void TeleFrag(int nKiller, int nSector);
69 void SectorStartSound(int nSector, int nState);
70 void SectorEndSound(int nSector, int nState);