raze/polymer/eduke32/source/grpscan.h

104 lines
2.7 KiB
C

//-------------------------------------------------------------------------
/*
Copyright (C) 2010 EDuke32 developers and contributors
This file is part of EDuke32.
EDuke32 is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.
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, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#ifndef grpscan_h_
#define grpscan_h_
#ifdef __cplusplus
extern "C" {
#endif
#define MAXLISTNAMELEN 32
// List of internally-known GRP files
#define DUKE13_CRC (int32_t)0xBBC9CE44
#define DUKEKR_CRC (int32_t)0xAA4F6A40
#define DUKE15_CRC (int32_t)0xFD3DCFF1
#define DUKEPP_CRC (int32_t)0xF514A6AC
#define DUKE099_CRC (int32_t)0x02F18900
#define DUKE10_CRC (int32_t)0xA28AA589
#define DUKE11_CRC (int32_t)0x912E1E8D
#define DUKESW_CRC (int32_t)0x983AD923
#define DUKEMD_CRC (int32_t)0xC5F71561
#define DUKEDC13_CRC (int32_t)0xA9242158
#define DUKEDCPP_CRC (int32_t)0xB79D997F
#define DUKEDC_CRC (int32_t)0xA8CF80DA
#define VACA13_CRC (int32_t)0x4A2DBB62
#define VACAPP_CRC (int32_t)0x2F4FCCEE
#define VACA15_CRC (int32_t)0xB62B42FD
#define DUKECB_CRC (int32_t)0x18F01C5B
#define DUKENW_CRC (int32_t)0xF1CAE8E4
#define DZ2_13_CRC (int32_t)0x82C1B47F
#define DZ2_PP_CRC (int32_t)0x7FB6117C
#define NAM_CRC (int32_t)0x75C1F07B
#define NAPALM_CRC (int32_t)0x3DE1589A
#define WW2GI_CRC (int32_t)0x907B82BF
enum addon_t {
ADDON_NONE,
ADDON_DUKEDC,
ADDON_NWINTER,
ADDON_CARIBBEAN,
NUMADDONS
};
typedef struct internalgrpinfo_t {
char const *name;
int32_t const crcval;
int32_t const size;
int32_t const game;
int32_t const dependency;
char const *scriptname;
void(*postprocessing)(int32_t);
} internalgrpinfo_t;
typedef struct grpinfo_t {
char *name;
int32_t crcval;
int32_t size;
int32_t game;
int32_t dependency;
char *scriptname;
char *defname;
void (*postprocessing)(int32_t);
struct grpinfo_t *next;
} grpinfo_t;
typedef struct grpfile_t {
char *filename;
struct grpinfo_t const *type;
struct grpfile_t *next;
} grpfile_t;
extern grpfile_t *foundgrps;
extern grpinfo_t *listgrps;
extern grpfile_t * FindGroup(int32_t crcval);
int32_t ScanGroups(void);
void FreeGroups(void);
#ifdef __cplusplus
}
#endif
#endif