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 #include "blood.h"
27 
28 enum SurfaceType {
29     kSurfNone = 0,
30     kSurfStone,
31     kSurfMetal,
32     kSurfWood,
33     kSurfFlesh,
34     kSurfWater,
35     kSurfDirt,
36     kSurfClay,
37     kSurfSnow,
38     kSurfIce,
39     kSurfLeaves,
40     kSurfCloth,
41     kSurfPlant,
42     kSurfGoo,
43     kSurfLava,
44     kSurfMax
45 };
46 
47 extern char surfType[kMaxTiles];
48 extern signed char tileShade[kMaxTiles];
49 extern short voxelIndex[kMaxTiles];
50 
51 extern int nPrecacheCount;
52 extern char precachehightile[2][(MAXTILES+7)>>3];
53 
54 extern int32_t MAXCACHE1DSIZE;
55 
56 void qloadvoxel(int32_t nVoxel);
57 void CalcPicsiz(int a1, int a2, int a3);
58 int tileInit(char a1, const char *a2);
59 #ifdef USE_OPENGL
60 void tileProcessGLVoxels(void);
61 #endif
62 char * tileLoadTile(int nTile);
63 char * tileAllocTile(int nTile, int x, int y, int ox, int oy);
64 void tilePreloadTile(int nTile);
65 void tilePrecacheTile(int nTile, int nType = 1);
66 char tileGetSurfType(int hit);
67