amxmodx/compiler/amxxpc/amxxpc.h
2014-08-04 13:18:28 -05:00

82 lines
1.6 KiB
C
Executable File

// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
// https://alliedmods.net/amxmodx-license
#ifndef _AMXXSC_INCLUDE_H
#define _AMXXSC_INCLUDE_H
#include <amxmodx_version.h>
#define MAGIC_HEADER2 0x414D5858
#define MAGIC_VERSION 0x0300
#if defined(__linux__) || defined(__APPLE__)
# include <dlfcn.h>
#else
# include <windows.h>
#endif
#include <string.h>
#if defined(__linux__) || defined(__APPLE__)
# define dlmount(x) dlopen(x, RTLD_NOW|RTLD_GLOBAL)
typedef void* HINSTANCE;
#else
# define dlsym(x, s) GetProcAddress(x, s)
# define dlmount(x) LoadLibrary(x)
# define dlclose(x) FreeLibrary(x)
#endif
#include "zlib.h"
#include "Binary.h"
typedef int (*COMPILER)(int argc, char **argv);
typedef int (*PRINTF)(const char *message, ...);
char *FindFileName(int argc, char **argv);
char *swiext(const char *file, const char *ext);
void show_help();
struct ablhdr
{
int magic;
char size;
};
struct abl
{
long stp;
char cellsize;
int size;
long cmpsize;
char *data;
char *cmp;
};
struct BinHeader
{
int32_t magic;
int16_t version;
int8_t plugins;
};
struct BinPlugin
{
int8_t cellsize; //cell size
int32_t imagesize; //uncompressed image size
int32_t disksize; //compressed image size
int32_t memsize; //memory image size
int32_t offs; //file offset
};
#if defined(__linux__) || defined(__APPLE__)
bool FileExists(const char *file);
#endif
#endif //_AMXXSC_INCLUDE_H