Added tile_scale command that calls consoleScaleTiles(const char *string). This then converts the passed arguments of 'float x float y' (e.g., 'tile_scale 1.0 1.0' to scale to 1.0 times) to scaleTiles(float scale_x, float scale_y). If no argument is passed in the string, the default 2.0 scale is used. If the y property is not passed, the value of scale_x is used for scale_y.
parent
4e6f983db8
commit
bd67818190
|
@ -237,6 +237,7 @@ int interfaceInit() {
|
||||||
consoleAddCommand("quit", interfaceQuit);
|
consoleAddCommand("quit", interfaceQuit);
|
||||||
consoleAddCommand("tickrate", interfaceSetInterval);
|
consoleAddCommand("tickrate", interfaceSetInterval);
|
||||||
consoleAddCommand("set_video", interfaceVideoSetSize);
|
consoleAddCommand("set_video", interfaceVideoSetSize);
|
||||||
|
consoleAddCommand("tile_scale", consoleScaleTiles);
|
||||||
|
|
||||||
camera_surface = SDL_CreateRGBSurface(screen->flags, screen->w, screen->h, screen->format->BitsPerPixel, screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, screen->format->Amask);
|
camera_surface = SDL_CreateRGBSurface(screen->flags, screen->w, screen->h, screen->format->BitsPerPixel, screen->format->Rmask, screen->format->Gmask, screen->format->Bmask, screen->format->Amask);
|
||||||
/* tile specific stuff */
|
/* tile specific stuff */
|
||||||
|
@ -874,6 +875,47 @@ void interfaceVideoSetSize(const char *input_string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void consoleScaleTiles(const char *input_string) {
|
||||||
|
if (input_string) {
|
||||||
|
int i = 0;
|
||||||
|
int j = 0;
|
||||||
|
char height[15];
|
||||||
|
char width[15];
|
||||||
|
int position = 0;
|
||||||
|
|
||||||
|
while(input_string[i] != '\0') {
|
||||||
|
if (input_string[i] == ' ') {
|
||||||
|
width[j] = '\0';
|
||||||
|
position = 1;
|
||||||
|
i++; // skip the x
|
||||||
|
j = 0;
|
||||||
|
//} else if (input_string[i] == ' ') {
|
||||||
|
// height[j] = '\0';
|
||||||
|
// i++; // skip the space
|
||||||
|
// j = 0;
|
||||||
|
// break;
|
||||||
|
}
|
||||||
|
if (position == 0) {
|
||||||
|
width[j] = input_string[i];
|
||||||
|
} else if (position == 1) {
|
||||||
|
height[j] = input_string[i];
|
||||||
|
}
|
||||||
|
j++;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
float scale_x = atof(width); // ... had to reverse order for it to work on win...
|
||||||
|
float scale_y = atof(height);
|
||||||
|
if (scale_x <= 0)
|
||||||
|
scale_x = 2.0; // default to 2.0 if scale_x is 0/invalid
|
||||||
|
if (scale_y <= 0)
|
||||||
|
scale_y = scale_x; // copy scale_x if scale_y unset/0/invalid
|
||||||
|
scaleTiles(scale_x, scale_y);
|
||||||
|
} else {
|
||||||
|
consoleLog("Syntax: widthxheight");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void loadFontFromMemory(struct Font *font, unsigned char *memory, unsigned int length, int width, int height) {
|
void loadFontFromMemory(struct Font *font, unsigned char *memory, unsigned int length, int width, int height) {
|
||||||
font->scale_x = 1.0f;
|
font->scale_x = 1.0f;
|
||||||
font->scale_y = 1.0f;
|
font->scale_y = 1.0f;
|
||||||
|
|
|
@ -67,6 +67,8 @@ float g_tile_height;
|
||||||
Uint32 combinepixels(Uint32 pixel_1, Uint32 pixel_2);
|
Uint32 combinepixels(Uint32 pixel_1, Uint32 pixel_2);
|
||||||
|
|
||||||
/* --- tile stuff --- */
|
/* --- tile stuff --- */
|
||||||
|
void consoleScaleTiles(const char *input_string);
|
||||||
|
|
||||||
void interfaceSetScale(float scale_x, float scale_y);
|
void interfaceSetScale(float scale_x, float scale_y);
|
||||||
void loadSpritesheetFromMemory(struct Spritesheet *spritesheet, unsigned char *memory, unsigned int length, int width, int height, int columns);
|
void loadSpritesheetFromMemory(struct Spritesheet *spritesheet, unsigned char *memory, unsigned int length, int width, int height, int columns);
|
||||||
void freeSpritesheet(struct Spritesheet *spritesheet);
|
void freeSpritesheet(struct Spritesheet *spritesheet);
|
||||||
|
|
Loading…
Reference in New Issue