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_game.h"
26 
27 enum FX_ID {
28     FX_NONE = -1,
29     FX_0 = 0,
30     FX_1,
31     FX_2,
32     FX_3,
33     FX_4,
34     FX_5,
35     FX_6,
36     FX_7,
37     FX_8,
38     FX_9,
39     FX_10,
40     FX_11,
41     FX_12,
42     FX_13,
43     FX_14,
44     FX_15,
45     FX_16,
46     FX_17,
47     FX_18,
48     FX_19,
49     FX_20,
50     FX_21,
51     FX_22,
52     FX_23,
53     FX_24,
54     FX_25,
55     FX_26,
56     FX_27,
57     FX_28,
58     FX_29,
59     FX_30,
60     FX_31,
61     FX_32,
62     FX_33,
63     FX_34,
64     FX_35,
65     FX_36,
66     FX_37,
67     FX_38,
68     FX_39,
69     FX_40,
70     FX_41,
71     FX_42,
72     FX_43,
73     FX_44,
74     FX_45,
75     FX_46,
76     FX_47,
77     FX_48,
78     FX_49,
79     FX_50,
80     FX_51,
81     FX_52,
82     FX_53,
83     FX_54,
84     FX_55,
85     FX_56,
86     kFXMax
87 };
88 
89 class CFX {
90 public:
91     void sub_73FB0(int);
92     void sub_73FFC(int);
93     spritetype * fxSpawn(FX_ID, int, int, int, int, unsigned int);
94     void fxProcess(void);
95 };
96 
97 void fxSpawnBlood(spritetype *pSprite, int a2);
98 void sub_746D4(spritetype *pSprite, int a2);
99 void fxSpawnEjectingBrass(spritetype *pSprite, int z, int a3, int a4);
100 void fxSpawnEjectingShell(spritetype *pSprite, int z, int a3, int a4);
101 
102 void fxPrecache(void);
103 
104 extern CFX gFX;
105