70Variable *
tilemap_load(
Environment * _environment,
char * _filename,
char * _alias,
int _mode,
int _flags,
int _transparent_color,
int _background_color,
int _bank_expansion ) {
89 char *lookfor = _filename;
94 if ( strcmp(lookfor, first->
fileName ) == 0 ) {
108 final->originalTilemap = tilemap;
125 if ( final->tileset ) {
131 char * tilesetFileName = strdup( lookedFilename );
134 char * separator = strrchr( tilesetFileName,
'/' );
137 strcopy( tilesetFileNameWithPath, tilesetFileName );
139 strcat( tilesetFileNameWithPath, tileset->
source );
141 variable_direct_assign( _environment, final->tileset->name,
tileset_load( _environment, lookedFilename, NULL, _mode, _flags, _transparent_color, _background_color, _bank_expansion )->
name );
142 final->tileset->firstGid = tileset->
firstgid;
143 tileset = tileset->
next;
153 char * mapData = NULL;
154 if ( final->valueBuffer ) {
155 if ( final->size !=
size ) {
158 mapData = realloc( final->valueBuffer, final->size +
size );
159 final->valueBuffer = mapData;
160 mapData +=
final->size;
163 final->valueBuffer = mapData;
165 memset( mapData, 0,
size );
166 for(
int i=0; i<
size; ++i ) {
167 if ( layer->
data[i] >= final->tileset->firstGid ) {
168 mapData[i] = ((
unsigned char)layer->
data[i]) - (final->tileset->firstGid);
174 final->mapWidth = layer->
width;
175 final->mapHeight = layer->
height;
182 loaded->
next = first;
void const_define_numeric(Environment *_environment, char *_name, int _value)
void variable_global(Environment *_environment, char *_pattern)
Variable * variable_define(Environment *_environment, char *_name, VariableType _type, int _value)
Define a variable for the program.
Variable * variable_direct_assign(Environment *_environment, char *_var, char *_expr)
char * resource_load_asserts(Environment *_environment, char *_filename)
Variable * variable_temporary(Environment *_environment, VariableType _type, char *_meaning)
Define a temporary variable.
int tenLinerRulesEnforced
struct _LoadedFile * next
struct _TsxTileset * tilesets
struct _TmxLayer * layers
struct _TsxTileset * next
Variable * tilemap_load(Environment *_environment, char *_filename, char *_alias, int _mode, int _flags, int _transparent_color, int _background_color, int _bank_expansion)
Emit code for LOAD TILEMAP(...).
Variable * tileset_load(Environment *_environment, char *_filename, char *_alias, int _mode, int _flags, int _transparent_color, int _background_color, int _bank_expansion)
Emit code for LOAD TILESERT(...).
TmxMap * tmx_load(char *_filename)
struct _TmxLayer TmxLayer
struct _TsxTileset TsxTileset
#define CRITICAL_TILEMAP_LOAD_ONLY_ONE_TILESET(v)
#define CRITICAL_10_LINE_RULES_ENFORCED(v)
#define CRITICAL_TILEMAP_LOAD_UNKNOWN_FORMAT(v)
#define CRITICAL_TILEMAP_LOAD_ONLY_SAME_SIZE_LAYER(v)
#define MAX_TEMPORARY_STORAGE
#define UNIQUE_RESOURCE_ID
struct _Variable Variable
Structure of a single variable.
#define CRITICAL_TILEMAP_LOAD_MISSING_TILESET(v)
struct _Environment Environment
Structure of compilation environment.
#define CRITICAL_SANDBOX_ENFORCED(v)
struct _LoadedFile LoadedFile
#define CRITICAL_TILEMAP_LOAD_MISSING_LAYER(v)
char * strcopy(char *_dest, char *_source)