/* ** Command & Conquer Generals Zero Hour(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program 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. ** ** This program 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 this program. If not, see . */ // FILE: Smudge.h ///////////////////////////////////////////////////////// #pragma once #ifndef _SMUDGE_H_ #define _SMUDGE_H_ #include "WW3D2/dllist.h" #include "WWMATH/Vector2.h" #include "WWMATH/Vector3.h" #define SET_SMUDGE_PARAMETERS(smudge,pos,offset,size,opacity) (smudge->m_pos=pos;smudge->m_offset=offset;smudge->m_size=size;smudge->m_opacity=opacity;) struct Smudge : public DLNodeClass { W3DMPO_GLUE(Smudge) Vector3 m_pos; //position of smudge center Vector2 m_offset; // difference in position between "texture" extraction and re-insertion for center vertex Real m_size; //size of smudge in world space. Real m_opacity; //alpha of center vertex, corners are assumed at 0 struct smudgeVertex { Vector3 pos; //world-space position of vertex Vector2 uv; //uv coordinates of vertex }; smudgeVertex m_verts[5]; //5 vertices of this smudge (in counter-clockwise order, starting at top-left, ending in center.) }; struct SmudgeSet : public DLNodeClass { W3DMPO_GLUE(SmudgeSet) public: friend class SmudgeManager; SmudgeSet( void ); virtual ~SmudgeSet(); void reset(void); Smudge *addSmudgeToSet(void); void removeSmudgeFromSet ( Smudge &mySmudge); DLListClass &getUsedSmudgeList( void ) { return m_usedSmudgeList;} Int getUsedSmudgeCount(void) { return m_usedSmudgeCount; } /// m_usedSmudgeList; /// m_freeSmudgeList; /// m_usedSmudgeSetList; /// m_freeSmudgeSetList; ///