Cavestory Mod API
ModConfigResource.h
Go to the documentation of this file.
1 /*
2  Cavestory Multiplayer API
3  Copyright (C) 2021 Johnny Ledger
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 
26 #if defined(_CAVESTORY_MULTIPLAYER) || !defined(_CAVEEDITOR)
27 #include <CSMAPI_begincode.h>
28 #endif
29 
30 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
31 
32 #pragma once
33 
34 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
35 
36 static const char* g_PXMOD_MUSIC_TYPE_EXTENSION_LIST[] = { "", "org", "ptcop", "wav", "mp3", "ogg" };
37 
38 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
39 
40 #define PXMOD_HEADER_STRING "PXMOD"
41 #define PXMOD_VERSION 22
42 
43 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
44 
45 enum PXMOD_BUILD_TYPE : unsigned char
46 {
47  PXMOD_BUILD_DEBUG = 0,
48  PXMOD_BUILD_RELEASE = 1,
49 
50  PXMOD_BUILD_COUNT
51 };
52 
53 enum PXMOD_DIRECTIONS : unsigned char
54 {
55  PXMOD_DIRECT_LEFT = 0,
56  PXMOD_DIRECT_UP = 1,
57  PXMOD_DIRECT_RIGHT = 2,
58  PXMOD_DIRECT_DOWN = 3,
59  PXMOD_DIRECT_CENTER = 4,
60  PXMOD_DIRECT_RIGHT_UP = 5,
61  PXMOD_DIRECT_DOWN_RIGHT = 6,
62 
63  // This should always be at the bottom of this enum.
64  PXMOD_DIRECT_COUNT
65 };
66 
67 enum PXMOD_BK_TYPE : unsigned char
68 {
69  PXMOD_BK_FIXED = 0,
70  PXMOD_BK_MOVE_SLOW = 1,
71  PXMOD_BK_FOLLOW_FOREGROUND = 2,
72  PXMOD_BK_HIDE = 3,
73  PXMOD_BK_SCROLL_FAST = 5,
74  PXMOD_BK_SCROLL_GRAVITY = 6,
75  PXMOD_BK_SCROLL_LAYERED = 7,
76 
77  PXMOD_BK_COUNT = 7
78 };
79 
80 enum PXMOD_BOSS_TYPE : unsigned char
81 {
82  PXMOD_BOSS_NONE = 0,
83  PXMOD_BOSS_OMEGA = 1,
84  PXMOD_BOSS_BALFROG = 2,
85  PXMOD_BOSS_WEAPON_X = 3,
86  PXMOD_BOSS_CORE = 4,
87  PXMOD_BOSS_IRONHEAD = 5,
88  PXMOD_BOSS_DRAGON_SISTERS = 6,
89  PXMOD_BOSS_UNDEAD_CORE = 7,
90  PXMOD_BOSS_HEAVY_PRESS = 8,
91  PXMOD_BOSS_BALLOS = 9,
92 
93  PXMOD_BOSS_COUNT = 9
94 };
95 
96 enum PXMOD_BULLET_FLAGS : unsigned short
97 {
98  PXMOD_BULLET_FLAG_IGNORE_SOLID = 0x004,
99  PXMOD_BULLET_FLAG_DONT_DESTROY_SOLID = 0x008,
100  PXMOD_BULLET_FLAG_PROJECTILE = 0x010,
101  PXMOD_BULLET_FLAG_BREAK_BLOCKS = 0x020,
102  PXMOD_BULLET_FLAG_PIERCE_BLOCKS = 0x040
103 };
104 
105 enum PXMOD_MUSIC_TYPE : unsigned char
106 {
107  PXMOD_MUSIC_TYPE_INVALID = 0,
108  PXMOD_MUSIC_TYPE_ORGANYA = 1,
109  PXMOD_MUSIC_TYPE_PTCOP = 2,
110  PXMOD_MUSIC_TYPE_WAV = 3,
111  PXMOD_MUSIC_TYPE_MP3 = 4,
112  PXMOD_MUSIC_TYPE_OGG = 5,
113 
114  PXMOD_MUSIC_TYPE_COUNT = 6
115 };
116 
117 enum PXMOD_WEAPON_TYPE : unsigned char
118 {
119  PXMOD_WEAPON_CUSTOM = 0,
120  PXMOD_WEAPON_AGILITY = 1,
121  PXMOD_WEAPON_NOTHING = 2,
122  PXMOD_WEAPON_RESERVED_3 = 3,
123  PXMOD_WEAPON_RESERVED_4 = 4,
124  PXMOD_WEAPON_RESERVED_5 = 5,
125  PXMOD_WEAPON_RESERVED_6 = 6,
126  PXMOD_WEAPON_RESERVED_7 = 7,
127  PXMOD_WEAPON_RESERVED_8 = 8,
128  PXMOD_WEAPON_RESERVED_9 = 9,
129  PXMOD_WEAPON_RESERVED_10 = 10,
130 
131  PXMOD_WEAPON_COUNT = 10
132 };
133 
134 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
135 
137 {
138  char name[16];
139 };
140 
142 {
143  char name[16];
144 };
145 
147 {
148  char name[16];
149 };
150 
152 {
154  char file[32];
155 
157  int tileset;
158 
160  PXMOD_BK_TYPE bkType;
161 
164 
167 
170 
173 
175  PXMOD_BOSS_TYPE boss_no;
176 
178  char name[34];
179 
182 
185 
188 };
189 
191 {
192  unsigned char data[4];
193 
194  inline int operator[](int idx) { return (int)data[idx % sizeof(data)]; }
195 
197  {
198  data[0] = 1;
199  data[1] = 0;
200  data[2] = 0;
201  data[3] = 0;
202  }
203 
204  PXMOD_VERSION_STRUCT(int season, int major, int minor, int patch)
205  {
206  data[0] = season;
207  data[1] = major;
208  data[2] = minor;
209  data[3] = patch;
210  }
211 };
212 
214 {
216  char name[32];
217 
220 
223 
226 
229 };
230 
232 {
234  char name[16];
235 
237  PXMOD_MUSIC_TYPE type;
238 };
239 
241 {
243  unsigned short flags;
244 
246  int damage;
247 
249  int hit_life;
250 
252  int range;
253 
255  struct
256  {
257  int w;
258  int h;
260 
262  struct
263  {
264  int w;
265  int h;
267 
269  struct
270  {
271  int left;
272  int right;
273  int top;
274  int bottom;
276 
278  char name[64];
279 };
280 
282 {
285  {
288 
290  int exp;
291 
293  struct
294  {
295  int left;
296  int top;
297  int right;
298  int bottom;
299  } view;
300  } level_info[3];
301 
303  {
304  int left;
305  int top;
306  int right;
307  int bottom;
308 
309  int hold_offset_x;
310  int hold_offset_y;
311  } display_info;
312 
314  char name[64];
315 
317  PXMOD_WEAPON_TYPE type;
318 };
319 
321 {
322  char name[64];
323 
324  int act_no;
325  unsigned long long int nodes;
326  unsigned long long int transmit_nodes;
327 };
328 
330 {
331  char name[256];
332  char default_value[256];
333 };
334 
336 {
337  char name[64];
338 
339  unsigned long long int nodes;
340  unsigned long long int transmit_nodes;
341  unsigned int bits;
342  unsigned short life;
343  unsigned char surf;
344  unsigned char hit_voice;
345  unsigned char destroy_voice;
346  unsigned char size;
347  long exp;
348  long damage;
349 
350  struct
351  {
352  unsigned char front;
353  unsigned char back;
354  unsigned char top;
355  unsigned char bottom;
356  } hit;
357 
358  struct
359  {
360  unsigned char front;
361  unsigned char back;
362  unsigned char top;
363  unsigned char bottom;
364  } view;
365 
366  struct
367  {
368  int left;
369  int top;
370  int right;
371  int bottom;
372  } sprite;
373 
374  int spritesheet_index;
375 
376  bool useNewColMethod;
377  bool canBreakTile47;
378 
379  char category[64];
380  char option1[256];
381  char option2[256];
382  char option3[256];
383  char option4[256];
384  char shortname1[8];
385  char shortname2[8];
386 
387  struct
388  {
389  PXMOD_NPC_ACT_STRUCT* list;
390  unsigned int count;
391  unsigned int highest_act_no;
392  } acts;
393 
394  struct
395  {
397  unsigned int count;
398  } default_properties;
399 };
400 
402 {
403  char name[64];
404  char desc[2048];
405  int sprite_index;
406  char set_flag_count;
407  int set_flag_list[8];
408 };
409 
410 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
411 
413 {
414  char title[128];
415  char author[128];
416  PXMOD_VERSION_STRUCT version;
417  PXMOD_BUILD_TYPE build_type;
418  unsigned short max_save_files;
419 
420  struct
421  {
422  bool allow_carrying_players;
423  bool allow_agility;
424  bool allow_fishing;
425  } gameplay;
426 
427  struct
428  {
429  bool draw_hp_bar;
430  bool draw_hp;
431  bool draw_weapons;
432  bool draw_ammo;
433  bool draw_exp_bar;
434  bool draw_level;
435  } hud;
436 
437  struct
438  {
439  bool enabled;
440  int surface_id;
441  struct
442  {
443  int left;
444  int top;
445  int right;
446  int bottom;
447  } sprite_rect;
448  } collectables;
449 
450  struct
451  {
452  unsigned short drown_core_flag;
453  unsigned short drown_core;
454  unsigned short everyone_died;
455  unsigned short drown;
456  unsigned short death;
457  } events;
458 
459  struct
460  {
461  unsigned int title;
462  unsigned int netmenu;
463  } music;
464 };
465 
467 {
468  unsigned int map;
469  unsigned short x;
470  unsigned short y;
471  unsigned short event;
472  unsigned char hp;
473  unsigned char max_hp;
474  PXMOD_DIRECTIONS direct;
475  unsigned int flags;
476 };
477 
479 {
480  unsigned int map;
481  unsigned short event;
482  unsigned short x;
483  unsigned short y;
484 };
485 
487 {
489  unsigned int count;
490 };
491 
493 {
495  unsigned int count;
496 };
497 
499 {
500  PXMOD_TILESET_STRUCT* list;
501  unsigned int count;
502 };
503 
505 {
506  PXMOD_STAGE_STRUCT* list;
507  unsigned short count;
508 };
509 
511 {
512  PXMOD_AREA_STRUCT* list;
513  unsigned int count;
514 };
515 
517 {
518  PXMOD_MUSIC_STRUCT* list;
519  unsigned int count;
520 };
521 
523 {
524  PXMOD_BULLET_STRUCT* list;
525  unsigned short count;
526 };
527 
529 {
530  PXMOD_WEAPON_STRUCT* list;
531  unsigned int count;
532 };
533 
535 {
536  PXMOD_NPC_STRUCT* list;
537  unsigned int count;
538 };
539 
540 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
541 
545 #if defined(_CAVESTORY_MULTIPLAYER) || defined(CAVESTORYMULTIPLAYERBASEDLL_EXPORTS)
547 #else
549 #endif
550 {
551 public: // Public map info
552 
555  char mModPath[260];
556 
560 
564 
568 
572 
576 
580 
584 
588 
592 
596 
600 
604 
605 public: // Public constructor
606 
610 
614 
615 public: // Map manipulation
616 
627  bool CreateMod(const char* pModPath, bool bAutoScan = true, const char* pModTitle = "My Mod", const char* pModAuthor = "Me", PXMOD_VERSION_STRUCT pVersion = PXMOD_VERSION_STRUCT(), bool bUseDefaultAssets = false);
628 
637  bool Load(const char* pModPath, bool bOnlyValidate = false, bool bForceRelease = false, bool bShowError = true);
638 
644  bool Save(bool bRelease = false);
645 
649  bool CreateFromMod(const char* pModPath);
650 
651 public: // General cleanup
652 
654  void Reset();
655 
656 public: // Header setting
657 
661  void SetTitle(const char* title);
662 
666  void SetAuthor(const char* author);
667 
671  void SetVersion(const PXMOD_VERSION_STRUCT& pNewVersion);
672 
673 public: // Header gettings
674 
678  const char* GetTitle();
679 
683  const char* GetInternalName();
684 
688  const char* GetAuthor();
689 
693  PXMOD_VERSION_STRUCT GetVersion();
694 
695 public: // Background editing
696 
702  int AddBackground(const char* pFileName);
703 
709  bool RemoveBackground(const char* pFileName);
710 
716  int FindBackground(const char* pFileName);
717 
718 public: // Tileset editing
719 
725  int AddTileset(const char* pFileName);
726 
732  bool RemoveTileset(const char* pFileName);
733 
739  int FindTileset(const char* pFileName);
740 
741 public: // Spritesheet editing
742 
748  int AddSpritesheet(const char* pFileName);
749 
755  bool RemoveSpritesheet(const char* pFileName);
756 
762  int FindSpritesheet(const char* pFileName);
763 
764 public: // Stage editing
765 
778  int AddStage(const char* pFileName, const char* pMapName, const char* pTileset, const char* pNpcSheet, const char* pBossSheet, const char* pBackground, PXMOD_BK_TYPE iBkType, PXMOD_BOSS_TYPE iBossType, unsigned int iInsertIndex = 0xFFFFFFFF);
779 
792  int SetStage(int iIndex, const char* pFileName, const char* pMapName, const char* pTileset, const char* pNpcSheet, const char* pBossSheet, const char* pBackground, PXMOD_BK_TYPE iBkType, PXMOD_BOSS_TYPE iBossType);
793 
799  bool RemoveStage(const char* pFileName);
800 
806  int FindStage(const char* pFileName);
807 
808 public: // Spritesheet editing
809 
815  int AddArea(const char* pAreaName);
816 
822  bool RemoveArea(const char* pAreaName);
823 
829  int FindArea(const char* pAreaName);
830 
831 public: // Music editing
832 
839  int AddMusic(const char* pMusicName, PXMOD_MUSIC_TYPE eMusicType = PXMOD_MUSIC_TYPE::PXMOD_MUSIC_TYPE_INVALID);
840 
847  bool MoveMusic(const char* pMusicName, bool bMoveUp);
848 
854  bool RemoveMusic(const char* pMusicName);
855 
861  int FindMusic(const char* pMusicName);
862 
863 public: // Weapon editing
864 
870  int AddWeapon(const char* pWeaponName);
871 
877  bool RemoveWeapon(const char* pWeaponName);
878 
884  int FindWeapon(const char* pWeaponName);
885 
886 public: // Bullet editing
887 
893  int AddBullet(const char* pBulletNmae);
894 
900  bool RemoveBullet(const char* pBulletName);
901 
907  int FindBullet(const char* pBulletName);
908 
909 public: // NPC editing
910 
916  int AddNPC(const char* pNpcName);
917 
923  bool RemoveNPC(const char* pNpcName);
924 
930  int FindNPC(const char* pNpcName);
931 
932 public: // Act editing
933 
943  int AddNpcAct(int iNpcIndex, int iActNo, const char* pActName, unsigned long long int iNodeFlags, unsigned long long int iTransmitNodeFlags);
944 
951  bool RemoveNpcAct(int iNpcIndex, int iActNo);
952 
953 public: // Getting defaults methods
954 
960  static const PXMOD_NPC_STRUCT* GetDefaultNpc(int iIndex);
961 
967  static const PXMOD_WEAPON_STRUCT* GetDefaultWeapon(int iIndex);
968 
974  static const PXMOD_WEAPON_STRUCT* GetDefaultTemplateWeapon(PXMOD_WEAPON_TYPE eType);
975 
981  static const PXMOD_BULLET_STRUCT* GetDefaultBullet(int iIndex);
982 
983 public: // Defaulting
984 
988 };
989 
990 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
991 
992 inline const char* ModConfigResource::GetTitle()
993 {
994  return mHeader.title;
995 }
996 
997 inline const char* ModConfigResource::GetAuthor()
998 {
999  return mHeader.author;
1000 }
1001 
1003 {
1004  return mHeader.version;
1005 }
1006 
1007 //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1008 
1009 #if defined(_CAVESTORY_MULTIPLAYER) || !defined(_CAVEEDITOR)
1010 extern CAVESTORY_MOD_API ModConfigResource gCaveMod;
1011 
1012 #include <CSMAPI_endcode.h>
1013 #endif
An interface for the 'PXMOD' file format.
Definition: ModConfigResource.h:550
PXMOD_AREA_CHUNK mAreas
Stores all the map area information.
Definition: ModConfigResource.h:587
int AddBullet(const char *pBulletNmae)
Add a bullet.
void SetAuthor(const char *author)
Set the author of the mod.
PXMOD_HEADER_STRUCT mHeader
The header for this mod.
Definition: ModConfigResource.h:559
PXMOD_START_CHUNK mStart
Game start chunk.
Definition: ModConfigResource.h:563
const char * GetTitle()
Get the title of the mod.
Definition: ModConfigResource.h:992
static const PXMOD_WEAPON_STRUCT * GetDefaultTemplateWeapon(PXMOD_WEAPON_TYPE eType)
Get default weapon info for a template.
bool RemoveArea(const char *pAreaName)
Remove an area.
PXMOD_WEAPON_CHUNK mWeapons
Stores all the weapon information.
Definition: ModConfigResource.h:595
PXMOD_TILESET_CHUNK mTilesets
Stores all the tilesets.
Definition: ModConfigResource.h:579
PXMOD_TITLE_CHUNK mTitle
Titlescreen intro chunk.
Definition: ModConfigResource.h:567
bool Load(const char *pModPath, bool bOnlyValidate=false, bool bForceRelease=false, bool bShowError=true)
Load a mod from a file on the disc.
PXMOD_STAGE_CHUNK mStages
Stores all the stage information.
Definition: ModConfigResource.h:583
PXMOD_SPRITESHEET_CHUNK mSpritesheets
Stores all the spritesheets.
Definition: ModConfigResource.h:575
int FindBackground(const char *pFileName)
Find the index of a background.
bool RemoveTileset(const char *pFileName)
Remove a tileset.
int FindWeapon(const char *pWeaponName)
Find the index of a weapon.
void SetTitle(const char *title)
Set the title of the mod.
int AddWeapon(const char *pWeaponName)
Add a weapon.
PXMOD_MUSIC_CHUNK mMusic
Stores all the music.
Definition: ModConfigResource.h:591
PXMOD_BACKGROUND_CHUNK mBackgrounds
Stores all the backgrounds.
Definition: ModConfigResource.h:571
int AddTileset(const char *pFileName)
Add a tileset.
const char * GetAuthor()
Get the author of the mod.
Definition: ModConfigResource.h:997
int AddArea(const char *pAreaName)
Add an area.
int FindArea(const char *pAreaName)
Find the index of an area.
ModConfigResource()
Constructor.
bool RemoveMusic(const char *pMusicName)
Remove music.
static const PXMOD_NPC_STRUCT * GetDefaultNpc(int iIndex)
Get the default NPC for slot iIndex.
bool Save(bool bRelease=false)
Save the mod.
int FindTileset(const char *pFileName)
Find the index of a tileset.
bool RemoveStage(const char *pFileName)
Remove a stage.
~ModConfigResource()
Deconstructor.
int AddSpritesheet(const char *pFileName)
Add a spritesheet.
int FindSpritesheet(const char *pFileName)
Find the index of a spritesheet.
int AddNpcAct(int iNpcIndex, int iActNo, const char *pActName, unsigned long long int iNodeFlags, unsigned long long int iTransmitNodeFlags)
Add an NPC act.
int AddStage(const char *pFileName, const char *pMapName, const char *pTileset, const char *pNpcSheet, const char *pBossSheet, const char *pBackground, PXMOD_BK_TYPE iBkType, PXMOD_BOSS_TYPE iBossType, unsigned int iInsertIndex=0xFFFFFFFF)
Add a stage.
bool RemoveNPC(const char *pNpcName)
Remove an NPC.
bool RemoveBullet(const char *pBulletName)
Remove a bullet.
bool RemoveNpcAct(int iNpcIndex, int iActNo)
Remove an NPC act.
void Reset()
Clear & free all buffers.
const char * GetInternalName()
Get the mod's path name.
bool RemoveSpritesheet(const char *pFileName)
Remove a spritesheet.
int FindBullet(const char *pBulletName)
Find the index of a bullet.
int FindNPC(const char *pNpcName)
Find the index of an NPC.
int AddNPC(const char *pNpcName)
Add an NPC.
bool CreateFromMod(const char *pModPath)
Create a pxmod file from external formats.
int FindMusic(const char *pMusicName)
Find the index of music.
int AddMusic(const char *pMusicName, PXMOD_MUSIC_TYPE eMusicType=PXMOD_MUSIC_TYPE::PXMOD_MUSIC_TYPE_INVALID)
Add music.
bool RemoveWeapon(const char *pWeaponName)
Remove a weapon.
PXMOD_VERSION_STRUCT GetVersion()
Get the version of the mod.
Definition: ModConfigResource.h:1002
void DefaultWeapons()
Reset weapons for this mod to the default Cavestory weapons.
static const PXMOD_WEAPON_STRUCT * GetDefaultWeapon(int iIndex)
Get the default weapon for slot iIndex.
bool CreateMod(const char *pModPath, bool bAutoScan=true, const char *pModTitle="My Mod", const char *pModAuthor="Me", PXMOD_VERSION_STRUCT pVersion=PXMOD_VERSION_STRUCT(), bool bUseDefaultAssets=false)
Create a mod out of a data path.
PXMOD_NPC_CHUNK mNpcs
Stores all the NPC information.
Definition: ModConfigResource.h:603
int AddBackground(const char *pFileName)
Add a background.
bool MoveMusic(const char *pMusicName, bool bMoveUp)
Move music around in the music list.
int FindStage(const char *pFileName)
Find the index of a stage.
PXMOD_BULLET_CHUNK mBullets
Stores all the bullet information.
Definition: ModConfigResource.h:599
int SetStage(int iIndex, const char *pFileName, const char *pMapName, const char *pTileset, const char *pNpcSheet, const char *pBossSheet, const char *pBackground, PXMOD_BK_TYPE iBkType, PXMOD_BOSS_TYPE iBossType)
Set a stage at an index.
bool RemoveBackground(const char *pFileName)
Remove a background.
static const PXMOD_BULLET_STRUCT * GetDefaultBullet(int iIndex)
Get the default bullet for slot iIndex.
void SetVersion(const PXMOD_VERSION_STRUCT &pNewVersion)
Set the version of the mod.
#define CAVESTORY_MOD_API
Exports / imports Cavestory Mod API functions & classes.
Definition: CSMAPI_begincode.h:30
Definition: ModConfigResource.h:511
Definition: ModConfigResource.h:214
bool keep_on_release
Whether this area will be kept when compiling mod for release.
Definition: ModConfigResource.h:225
int stage_idx
Which stage index will be shown in the background of the lobby.
Definition: ModConfigResource.h:219
bool singleplayer_only
If true, then the server will NOT send any of the maps under this area to clients.
Definition: ModConfigResource.h:222
char name[32]
Area name.
Definition: ModConfigResource.h:216
bool allow_downloading
Whether this area allows for downloading over the network or not.
Definition: ModConfigResource.h:228
Definition: ModConfigResource.h:487
Definition: ModConfigResource.h:137
Definition: ModConfigResource.h:523
Definition: ModConfigResource.h:241
struct PXMOD_BULLET_STRUCT::@21 collision_size
The size of this bullet's collision.
struct PXMOD_BULLET_STRUCT::@20 bullet_size
The size of this bullet's bounding box.
int range
How far this bullet can go before it despawns, in ticks.
Definition: ModConfigResource.h:252
int damage
The damage this bullet deals.
Definition: ModConfigResource.h:246
char name[64]
The name of this bullet. This is not saved in the release build.
Definition: ModConfigResource.h:278
int hit_life
How many times this bullet can hit something before it despawns.
Definition: ModConfigResource.h:249
unsigned short flags
Flags for this bullet.
Definition: ModConfigResource.h:243
struct PXMOD_BULLET_STRUCT::@22 sprite
The sprite location for this bullet.
Definition: ModConfigResource.h:413
Definition: ModConfigResource.h:402
Definition: ModConfigResource.h:517
Definition: ModConfigResource.h:232
PXMOD_MUSIC_TYPE type
The type of music.
Definition: ModConfigResource.h:237
char name[16]
File name.
Definition: ModConfigResource.h:234
Definition: ModConfigResource.h:321
Definition: ModConfigResource.h:535
Definition: ModConfigResource.h:330
Definition: ModConfigResource.h:336
Definition: ModConfigResource.h:493
Definition: ModConfigResource.h:142
Definition: ModConfigResource.h:505
Definition: ModConfigResource.h:152
int background
Background.
Definition: ModConfigResource.h:163
int area_index
Area index.
Definition: ModConfigResource.h:172
int boss_sheet
Boss Spritesheet file.
Definition: ModConfigResource.h:169
PXMOD_BOSS_TYPE boss_no
Boss number.
Definition: ModConfigResource.h:175
PXMOD_BK_TYPE bkType
Background type.
Definition: ModConfigResource.h:160
bool share_pickups
Force all EXP, missile & life pickups to be shared across all clients.
Definition: ModConfigResource.h:187
bool focus_center_x
Force camera to lock onto the horizontal center of this stage.
Definition: ModConfigResource.h:181
char name[34]
Map name.
Definition: ModConfigResource.h:178
bool focus_center_y
Force camera to lock onto the vertical center of this stage.
Definition: ModConfigResource.h:184
int tileset
Tileset.
Definition: ModConfigResource.h:157
char file[32]
Map file name.
Definition: ModConfigResource.h:154
int npc_sheet
NPC Spritesheet file.
Definition: ModConfigResource.h:166
Definition: ModConfigResource.h:467
Definition: ModConfigResource.h:499
Definition: ModConfigResource.h:147
Definition: ModConfigResource.h:479
Definition: ModConfigResource.h:191
Definition: ModConfigResource.h:529
Definition: ModConfigResource.h:303
Bullet info for every level.
Definition: ModConfigResource.h:285
struct PXMOD_WEAPON_STRUCT::WEAPON_LEVEL_INFO::@23 view
The gun's view.
int exp
How much EXP is required to go to the next level.
Definition: ModConfigResource.h:290
int bullet_index
The index of the bullet to use for this gun.
Definition: ModConfigResource.h:287
Definition: ModConfigResource.h:282
PXMOD_WEAPON_TYPE type
The type of weapon this is.
Definition: ModConfigResource.h:317
char name[64]
Name of the weapon.
Definition: ModConfigResource.h:314