ParticleEditorExport.h 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /*
  2. ** Command & Conquer Generals Zero Hour(tm)
  3. ** Copyright 2025 Electronic Arts Inc.
  4. **
  5. ** This program is free software: you can redistribute it and/or modify
  6. ** it under the terms of the GNU General Public License as published by
  7. ** the Free Software Foundation, either version 3 of the License, or
  8. ** (at your option) any later version.
  9. **
  10. ** This program is distributed in the hope that it will be useful,
  11. ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ** GNU General Public License for more details.
  14. **
  15. ** You should have received a copy of the GNU General Public License
  16. ** along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #pragma once
  19. #include "Lib/BaseType.h"
  20. class ParticleSystemTemplate;
  21. // Declared extern C to prevent name mangling, which makes life very unhappy
  22. extern "C" {
  23. // Called to create the dialog
  24. void __declspec(dllexport) CreateParticleSystemDialog( void );
  25. // Called to (not surprisingly) destroy the dialog (and free the resources)
  26. void __declspec(dllexport) DestroyParticleSystemDialog( void );
  27. void __declspec(dllexport) RemoveAllParticleSystems( void );
  28. void __declspec(dllexport) AppendParticleSystem( const char* particleSystemName );
  29. void __declspec(dllexport) RemoveAllThingTemplates( void );
  30. void __declspec(dllexport) AppendThingTemplate( const char* thingTemplateName );
  31. Bool __declspec(dllexport) HasUpdatedSelectedParticleSystem( void );
  32. void __declspec(dllexport) GetSelectedParticleSystemName( char *bufferToCopyInto );
  33. void __declspec(dllexport) UpdateCurrentParticleCap( int currentParticleCap );
  34. void __declspec(dllexport) UpdateCurrentNumParticles( int currentParticleCount );
  35. int __declspec(dllexport) GetNewParticleCap( void );
  36. # define PARM_ParticleTypeName 0x00
  37. # define PARM_SlaveSystemName 0x01
  38. # define PARM_AttachedSystemName 0x02
  39. // Keep this one last
  40. # define PARM_NumParms 0x03
  41. // parmNum can be exactly one of the above defines (PARM_*)
  42. void __declspec(dllexport) GetSelectedParticleAsciiStringParm( int parmNum, char *bufferToCopyInto, ParticleSystemTemplate **whichTemplate );
  43. void __declspec(dllexport) UpdateParticleAsciiStringParm( int parmNum, const char *bufferToCopyFrom, ParticleSystemTemplate **whichTemplate );
  44. void __declspec(dllexport) UpdateCurrentParticleSystem( ParticleSystemTemplate *particleTemplate );
  45. void __declspec(dllexport) UpdateSystemUseParameters( ParticleSystemTemplate *particleTemplate );
  46. Bool __declspec(dllexport) ShouldWriteINI( void );
  47. Bool __declspec(dllexport) ShouldBusyWait( void );
  48. Bool __declspec(dllexport) ShouldUpdateParticleCap( void );
  49. Bool __declspec(dllexport) ShouldReloadTextures( void );
  50. # define PEB_Continue 0x00
  51. # define PEB_UpdateCurrentSystem 0x01
  52. # define PEB_ChangeToAnotherSystem 0x02
  53. # define PEB_SaveCurrentSystem 0x03
  54. # define PEB_SaveAllSystems 0x03
  55. # define PEB_ReloadCurrentSystem 0x04
  56. # define PEB_SetParticleCap 0x05
  57. # define PEB_ReloadTextures 0x06
  58. # define PEB_KillAllSystems 0x07
  59. # define PEB_BusyWait 0xFE
  60. # define PEB_Error 0xFF
  61. int __declspec(dllexport) NextParticleEditorBehavior( void );
  62. }