// Decal object // Copyright (C) 2002 David Rosen // Copyright (C) 2003 Steven Fuller // Copyright (C) 2003 Zachary Jack Slater // Copyright (C) 2021, 2023 Nguyễn Gia Phong // // This file is part of Black Shades. // // Black Shades is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published // by the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Black Shades is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Black Shades. If not, see . #ifndef BLACKSHADES_DECALS_H #define BLACKSHADES_DECALS_H #include "Models.h" #include "Quaternions.h" #define MAX_DECALS 120 enum decal { BULLET_HOLE, CRATER, BLOOD_POOL }; struct Decals { GLuint hole_textures[2]; GLuint blood_textures[11]; GLuint len; enum decal kind[MAX_DECALS]; XYZ points[MAX_DECALS * 8]; GLuint numpoints[MAX_DECALS]; GLfloat texcoordsx[MAX_DECALS * 8]; GLfloat texcoordsy[MAX_DECALS * 8]; GLfloat alive[MAX_DECALS]; }; #ifdef __cplusplus extern "C" { #endif // __cplusplus void addDecal(struct Decals *d, enum decal kind, XYZ location, float size, XYZ normal, int poly, Model *model, XYZ move, float rotation); void updateDecals(struct Decals *d); void drawDecals(struct Decals *d); void destroyDecals(struct Decals *d); #ifdef __cplusplus } // extern "C" #endif // __cplusplus #endif // BLACKSHADES_DECALS_H