mirror of
https://github.com/cxong/cdogs-sdl.git
synced 2025-07-22 23:13:00 +02:00
Add clangformat (fixes #641)
This commit is contained in:
8
.clang-format
Normal file
8
.clang-format
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
BasedOnStyle: Microsoft
|
||||||
|
AlignAfterOpenBracket: AlwaysBreak
|
||||||
|
ColumnLimit: '79'
|
||||||
|
TabWidth: '4'
|
||||||
|
UseTab: Always
|
||||||
|
|
||||||
|
...
|
@@ -30,21 +30,19 @@
|
|||||||
#include "editor_ui_common.h"
|
#include "editor_ui_common.h"
|
||||||
#include "nk_window.h"
|
#include "nk_window.h"
|
||||||
|
|
||||||
|
|
||||||
#define WIDTH 600
|
#define WIDTH 600
|
||||||
#define HEIGHT 500
|
#define HEIGHT 500
|
||||||
#define MAIN_WIDTH 400
|
#define MAIN_WIDTH 400
|
||||||
#define SIDE_WIDTH (WIDTH - MAIN_WIDTH)
|
#define SIDE_WIDTH (WIDTH - MAIN_WIDTH)
|
||||||
#define ROW_HEIGHT 25
|
#define ROW_HEIGHT 25
|
||||||
|
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
struct nk_context *ctx;
|
struct nk_context *ctx;
|
||||||
PicManager *pm;
|
PicManager *pm;
|
||||||
Mission *m;
|
Mission *m;
|
||||||
int *brushIdx;
|
int *brushIdx;
|
||||||
CArray texIdsTileClasses; // of GLuint
|
CArray texIdsTileClasses; // of GLuint
|
||||||
int tileIdx;
|
int tileIdx;
|
||||||
char *tcTypes;
|
char *tcTypes;
|
||||||
char *floorStyles;
|
char *floorStyles;
|
||||||
@@ -55,7 +53,6 @@ typedef struct
|
|||||||
CArray texIdsDoorStyles;
|
CArray texIdsDoorStyles;
|
||||||
} TileBrushData;
|
} TileBrushData;
|
||||||
|
|
||||||
|
|
||||||
static void ResetTexIds(TileBrushData *data);
|
static void ResetTexIds(TileBrushData *data);
|
||||||
static const char *IndexFloorStyleName(const int idx);
|
static const char *IndexFloorStyleName(const int idx);
|
||||||
static const char *IndexWallStyleName(const int idx);
|
static const char *IndexWallStyleName(const int idx);
|
||||||
@@ -76,7 +73,7 @@ void TileBrush(
|
|||||||
memset(&cfg, 0, sizeof cfg);
|
memset(&cfg, 0, sizeof cfg);
|
||||||
cfg.Title = "Tile Brush";
|
cfg.Title = "Tile Brush";
|
||||||
cfg.Size = svec2i(WIDTH, HEIGHT);
|
cfg.Size = svec2i(WIDTH, HEIGHT);
|
||||||
color_t bg = { 41, 26, 26, 255 };
|
color_t bg = {41, 26, 26, 255};
|
||||||
cfg.BG = bg;
|
cfg.BG = bg;
|
||||||
cfg.Handlers = handlers;
|
cfg.Handlers = handlers;
|
||||||
cfg.Draw = Draw;
|
cfg.Draw = Draw;
|
||||||
@@ -95,32 +92,32 @@ void TileBrush(
|
|||||||
data.ctx = cfg.ctx;
|
data.ctx = cfg.ctx;
|
||||||
data.tcTypes = GetClassNames(
|
data.tcTypes = GetClassNames(
|
||||||
TILE_CLASS_COUNT, (const char *(*)(const int))TileClassTypeStr);
|
TILE_CLASS_COUNT, (const char *(*)(const int))TileClassTypeStr);
|
||||||
data.floorStyles = GetClassNames(
|
data.floorStyles =
|
||||||
pm->tileStyleNames.size, IndexFloorStyleName);
|
GetClassNames(pm->tileStyleNames.size, IndexFloorStyleName);
|
||||||
data.wallStyles = GetClassNames(
|
data.wallStyles =
|
||||||
pm->wallStyleNames.size, IndexWallStyleName);
|
GetClassNames(pm->wallStyleNames.size, IndexWallStyleName);
|
||||||
data.doorStyles = GetClassNames(
|
data.doorStyles =
|
||||||
pm->doorStyleNames.size, IndexDoorStyleName);
|
GetClassNames(pm->doorStyleNames.size, IndexDoorStyleName);
|
||||||
TexArrayInit(&data.texIdsFloorStyles, pm->tileStyleNames.size);
|
TexArrayInit(&data.texIdsFloorStyles, pm->tileStyleNames.size);
|
||||||
CA_FOREACH(const GLuint, texid, data.texIdsFloorStyles)
|
CA_FOREACH(const GLuint, texid, data.texIdsFloorStyles)
|
||||||
const char *style = *(char **)CArrayGet(&pm->tileStyleNames, _ca_index);
|
const char *style = *(char **)CArrayGet(&pm->tileStyleNames, _ca_index);
|
||||||
const TileClass *styleClass = GetOrAddTileClass(
|
const TileClass *styleClass = GetOrAddTileClass(
|
||||||
&gTileFloor, pm, style, colorBattleshipGrey, colorOfficeGreen);
|
&gTileFloor, pm, style, colorBattleshipGrey, colorOfficeGreen);
|
||||||
LoadTexFromPic(*texid, styleClass->Pic);
|
LoadTexFromPic(*texid, styleClass->Pic);
|
||||||
CA_FOREACH_END()
|
CA_FOREACH_END()
|
||||||
TexArrayInit(&data.texIdsWallStyles, pm->wallStyleNames.size);
|
TexArrayInit(&data.texIdsWallStyles, pm->wallStyleNames.size);
|
||||||
CA_FOREACH(const GLuint, texid, data.texIdsWallStyles)
|
CA_FOREACH(const GLuint, texid, data.texIdsWallStyles)
|
||||||
const char *style = *(char **)CArrayGet(&pm->wallStyleNames, _ca_index);
|
const char *style = *(char **)CArrayGet(&pm->wallStyleNames, _ca_index);
|
||||||
const TileClass *styleClass = GetOrAddTileClass(
|
const TileClass *styleClass = GetOrAddTileClass(
|
||||||
&gTileWall, pm, style, colorGravel, colorOfficeGreen);
|
&gTileWall, pm, style, colorGravel, colorOfficeGreen);
|
||||||
LoadTexFromPic(*texid, styleClass->Pic);
|
LoadTexFromPic(*texid, styleClass->Pic);
|
||||||
CA_FOREACH_END()
|
CA_FOREACH_END()
|
||||||
TexArrayInit(&data.texIdsDoorStyles, pm->doorStyleNames.size);
|
TexArrayInit(&data.texIdsDoorStyles, pm->doorStyleNames.size);
|
||||||
CA_FOREACH(const GLuint, texid, data.texIdsDoorStyles)
|
CA_FOREACH(const GLuint, texid, data.texIdsDoorStyles)
|
||||||
const char *style = *(char **)CArrayGet(&pm->doorStyleNames, _ca_index);
|
const char *style = *(char **)CArrayGet(&pm->doorStyleNames, _ca_index);
|
||||||
const TileClass *styleClass = GetOrAddTileClass(
|
const TileClass *styleClass =
|
||||||
&gTileDoor, pm, style, colorWhite, colorOfficeGreen);
|
GetOrAddTileClass(&gTileDoor, pm, style, colorWhite, colorOfficeGreen);
|
||||||
LoadTexFromPic(*texid, styleClass->Pic);
|
LoadTexFromPic(*texid, styleClass->Pic);
|
||||||
CA_FOREACH_END()
|
CA_FOREACH_END()
|
||||||
|
|
||||||
NKWindow(cfg);
|
NKWindow(cfg);
|
||||||
@@ -139,18 +136,19 @@ void TileBrush(
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void DrawTileOpsRow(
|
static void DrawTileOpsRow(
|
||||||
struct nk_context *ctx, TileBrushData *tbData,
|
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC,
|
||||||
TileClass *selectedTC, bool *result);
|
bool *result);
|
||||||
static void DrawTilePropsSidebar(
|
static void DrawTilePropsSidebar(
|
||||||
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC);
|
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC);
|
||||||
static int DrawTileType(TileBrushData *tbData, TileClass *tc, const int tileId);
|
static int DrawTileType(
|
||||||
|
TileBrushData *tbData, TileClass *tc, const int tileId);
|
||||||
static bool Draw(SDL_Window *win, struct nk_context *ctx, void *data)
|
static bool Draw(SDL_Window *win, struct nk_context *ctx, void *data)
|
||||||
{
|
{
|
||||||
UNUSED(win);
|
UNUSED(win);
|
||||||
bool result = true;
|
bool result = true;
|
||||||
TileBrushData *tbData = data;
|
TileBrushData *tbData = data;
|
||||||
TileClass* selectedTC = MissionStaticIdTileClass(
|
TileClass *selectedTC =
|
||||||
&tbData->m->u.Static, *tbData->brushIdx);
|
MissionStaticIdTileClass(&tbData->m->u.Static, *tbData->brushIdx);
|
||||||
if (nk_begin(ctx, "", nk_rect(0, 0, MAIN_WIDTH, HEIGHT), NK_WINDOW_BORDER))
|
if (nk_begin(ctx, "", nk_rect(0, 0, MAIN_WIDTH, HEIGHT), NK_WINDOW_BORDER))
|
||||||
{
|
{
|
||||||
DrawTileOpsRow(ctx, tbData, selectedTC, &result);
|
DrawTileOpsRow(ctx, tbData, selectedTC, &result);
|
||||||
@@ -159,8 +157,7 @@ static bool Draw(SDL_Window *win, struct nk_context *ctx, void *data)
|
|||||||
tbData->tileIdx = 0;
|
tbData->tileIdx = 0;
|
||||||
int tilesDrawn = 0;
|
int tilesDrawn = 0;
|
||||||
for (int i = 0;
|
for (int i = 0;
|
||||||
tilesDrawn < hashmap_length(tbData->m->u.Static.TileClasses);
|
tilesDrawn < hashmap_length(tbData->m->u.Static.TileClasses); i++)
|
||||||
i++)
|
|
||||||
{
|
{
|
||||||
TileClass *tc = MissionStaticIdTileClass(&tbData->m->u.Static, i);
|
TileClass *tc = MissionStaticIdTileClass(&tbData->m->u.Static, i);
|
||||||
if (tc != NULL)
|
if (tc != NULL)
|
||||||
@@ -173,8 +170,8 @@ static bool Draw(SDL_Window *win, struct nk_context *ctx, void *data)
|
|||||||
nk_end(ctx);
|
nk_end(ctx);
|
||||||
|
|
||||||
if (nk_begin(
|
if (nk_begin(
|
||||||
ctx, "Properties", nk_rect(MAIN_WIDTH, 0, SIDE_WIDTH, HEIGHT),
|
ctx, "Properties", nk_rect(MAIN_WIDTH, 0, SIDE_WIDTH, HEIGHT),
|
||||||
NK_WINDOW_BORDER | NK_WINDOW_TITLE) &&
|
NK_WINDOW_BORDER | NK_WINDOW_TITLE) &&
|
||||||
selectedTC != NULL)
|
selectedTC != NULL)
|
||||||
{
|
{
|
||||||
DrawTilePropsSidebar(ctx, tbData, selectedTC);
|
DrawTilePropsSidebar(ctx, tbData, selectedTC);
|
||||||
@@ -183,8 +180,8 @@ static bool Draw(SDL_Window *win, struct nk_context *ctx, void *data)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
static void DrawTileOpsRow(
|
static void DrawTileOpsRow(
|
||||||
struct nk_context *ctx, TileBrushData *tbData,
|
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC,
|
||||||
TileClass *selectedTC, bool *result)
|
bool *result)
|
||||||
{
|
{
|
||||||
nk_layout_row_dynamic(ctx, ROW_HEIGHT, 4);
|
nk_layout_row_dynamic(ctx, ROW_HEIGHT, 4);
|
||||||
if (nk_button_label(ctx, "Done"))
|
if (nk_button_label(ctx, "Done"))
|
||||||
@@ -195,8 +192,8 @@ static void DrawTileOpsRow(
|
|||||||
{
|
{
|
||||||
TileClass tc;
|
TileClass tc;
|
||||||
TileClassInit(
|
TileClassInit(
|
||||||
&tc, &gPicManager, &gTileFloor, "tile", "normal",
|
&tc, &gPicManager, &gTileFloor, "tile", "normal", colorGray,
|
||||||
colorGray, colorGray);
|
colorGray);
|
||||||
if (MissionStaticAddTileClass(&tbData->m->u.Static, &tc) != NULL)
|
if (MissionStaticAddTileClass(&tbData->m->u.Static, &tc) != NULL)
|
||||||
{
|
{
|
||||||
ResetTexIds(tbData);
|
ResetTexIds(tbData);
|
||||||
@@ -205,8 +202,8 @@ static void DrawTileOpsRow(
|
|||||||
}
|
}
|
||||||
if (nk_button_label(ctx, "Duplicate"))
|
if (nk_button_label(ctx, "Duplicate"))
|
||||||
{
|
{
|
||||||
if (MissionStaticAddTileClass(
|
if (MissionStaticAddTileClass(&tbData->m->u.Static, selectedTC) !=
|
||||||
&tbData->m->u.Static, selectedTC) != NULL)
|
NULL)
|
||||||
{
|
{
|
||||||
ResetTexIds(tbData);
|
ResetTexIds(tbData);
|
||||||
}
|
}
|
||||||
@@ -215,18 +212,17 @@ static void DrawTileOpsRow(
|
|||||||
nk_button_label(ctx, "Remove"))
|
nk_button_label(ctx, "Remove"))
|
||||||
{
|
{
|
||||||
if (MissionStaticRemoveTileClass(
|
if (MissionStaticRemoveTileClass(
|
||||||
&tbData->m->u.Static, *tbData->brushIdx))
|
&tbData->m->u.Static, *tbData->brushIdx))
|
||||||
{
|
{
|
||||||
ResetTexIds(tbData);
|
ResetTexIds(tbData);
|
||||||
// Set selected tile index to an existing tile
|
// Set selected tile index to an existing tile
|
||||||
if (hashmap_length(tbData->m->u.Static.TileClasses) > 0)
|
if (hashmap_length(tbData->m->u.Static.TileClasses) > 0)
|
||||||
{
|
{
|
||||||
for (*tbData->brushIdx = 0;
|
for (*tbData->brushIdx = 0;
|
||||||
MissionStaticIdTileClass(
|
MissionStaticIdTileClass(
|
||||||
&tbData->m->u.Static,
|
&tbData->m->u.Static, *tbData->brushIdx) == NULL;
|
||||||
*tbData->brushIdx
|
(*tbData->brushIdx)++)
|
||||||
) == NULL;
|
;
|
||||||
(*tbData->brushIdx)++);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -239,7 +235,7 @@ static void DrawTilePropsSidebar(
|
|||||||
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC)
|
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC)
|
||||||
{
|
{
|
||||||
nk_layout_row_dynamic(ctx, ROW_HEIGHT, 1);
|
nk_layout_row_dynamic(ctx, ROW_HEIGHT, 1);
|
||||||
|
|
||||||
DrawTileTypeSelect(ctx, tbData, selectedTC);
|
DrawTileTypeSelect(ctx, tbData, selectedTC);
|
||||||
|
|
||||||
if (selectedTC->Type != TILE_CLASS_NOTHING)
|
if (selectedTC->Type != TILE_CLASS_NOTHING)
|
||||||
@@ -254,14 +250,12 @@ static void DrawTileTypeSelect(
|
|||||||
{
|
{
|
||||||
nk_label(ctx, "Type:", NK_TEXT_LEFT);
|
nk_label(ctx, "Type:", NK_TEXT_LEFT);
|
||||||
const TileClassType newType = nk_combo_separator(
|
const TileClassType newType = nk_combo_separator(
|
||||||
ctx, tbData->tcTypes, '\0', selectedTC->Type,
|
ctx, tbData->tcTypes, '\0', selectedTC->Type, TILE_CLASS_COUNT,
|
||||||
TILE_CLASS_COUNT, ROW_HEIGHT,
|
ROW_HEIGHT, nk_vec2(nk_widget_width(ctx), 8 * ROW_HEIGHT));
|
||||||
nk_vec2(nk_widget_width(ctx), 8 * ROW_HEIGHT)
|
|
||||||
);
|
|
||||||
if (newType != selectedTC->Type)
|
if (newType != selectedTC->Type)
|
||||||
{
|
{
|
||||||
TileClassTerminate(selectedTC);
|
TileClassTerminate(selectedTC);
|
||||||
const TileClass* base = &gTileFloor;
|
const TileClass *base = &gTileFloor;
|
||||||
switch (newType)
|
switch (newType)
|
||||||
{
|
{
|
||||||
case TILE_CLASS_FLOOR:
|
case TILE_CLASS_FLOOR:
|
||||||
@@ -287,8 +281,8 @@ static void DrawTileStyleSelect(
|
|||||||
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC)
|
struct nk_context *ctx, TileBrushData *tbData, TileClass *selectedTC)
|
||||||
{
|
{
|
||||||
nk_label(ctx, "Style:", NK_TEXT_LEFT);
|
nk_label(ctx, "Style:", NK_TEXT_LEFT);
|
||||||
const GLuint* styleTexIds = NULL;
|
const GLuint *styleTexIds = NULL;
|
||||||
const char* styles = "";
|
const char *styles = "";
|
||||||
int styleSelected = -1;
|
int styleSelected = -1;
|
||||||
int styleCount = 0;
|
int styleCount = 0;
|
||||||
switch (selectedTC->Type)
|
switch (selectedTC->Type)
|
||||||
@@ -315,10 +309,8 @@ static void DrawTileStyleSelect(
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
const int newStyle = nk_combo_separator_image(
|
const int newStyle = nk_combo_separator_image(
|
||||||
ctx, styleTexIds, styles, '\0', styleSelected,
|
ctx, styleTexIds, styles, '\0', styleSelected, styleCount, ROW_HEIGHT,
|
||||||
styleCount, ROW_HEIGHT,
|
nk_vec2(nk_widget_width(ctx), 8 * ROW_HEIGHT));
|
||||||
nk_vec2(nk_widget_width(ctx), 8 * ROW_HEIGHT)
|
|
||||||
);
|
|
||||||
if (newStyle != styleSelected)
|
if (newStyle != styleSelected)
|
||||||
{
|
{
|
||||||
CFREE(selectedTC->Style);
|
CFREE(selectedTC->Style);
|
||||||
@@ -335,8 +327,9 @@ static int DrawTileType(TileBrushData *tbData, TileClass *tc, const int tileId)
|
|||||||
char name[256];
|
char name[256];
|
||||||
TileClassGetBrushName(name, tc);
|
TileClassGetBrushName(name, tc);
|
||||||
const int selected = *tbData->brushIdx == tileId;
|
const int selected = *tbData->brushIdx == tileId;
|
||||||
if (nk_select_label(tbData->ctx, name,
|
if (nk_select_label(
|
||||||
NK_TEXT_ALIGN_BOTTOM | NK_TEXT_ALIGN_CENTERED, selected))
|
tbData->ctx, name, NK_TEXT_ALIGN_BOTTOM | NK_TEXT_ALIGN_CENTERED,
|
||||||
|
selected))
|
||||||
{
|
{
|
||||||
*tbData->brushIdx = tileId;
|
*tbData->brushIdx = tileId;
|
||||||
}
|
}
|
||||||
@@ -364,8 +357,7 @@ static void ResetTexIds(TileBrushData *data)
|
|||||||
}
|
}
|
||||||
const int nTileClasses = hashmap_length(data->m->u.Static.TileClasses);
|
const int nTileClasses = hashmap_length(data->m->u.Static.TileClasses);
|
||||||
CArrayResize(&data->texIdsTileClasses, nTileClasses, NULL);
|
CArrayResize(&data->texIdsTileClasses, nTileClasses, NULL);
|
||||||
glGenTextures(
|
glGenTextures(nTileClasses, (GLuint *)data->texIdsTileClasses.data);
|
||||||
nTileClasses, (GLuint *)data->texIdsTileClasses.data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *IndexFloorStyleName(const int idx)
|
static const char *IndexFloorStyleName(const int idx)
|
||||||
@@ -401,10 +393,10 @@ static int TileStyleIndex(const CArray *styles, const char *style)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
CA_FOREACH(const char *, styleName, *styles)
|
CA_FOREACH(const char *, styleName, *styles)
|
||||||
if (strcmp(*styleName, style) == 0)
|
if (strcmp(*styleName, style) == 0)
|
||||||
{
|
{
|
||||||
return _ca_index;
|
return _ca_index;
|
||||||
}
|
}
|
||||||
CA_FOREACH_END()
|
CA_FOREACH_END()
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user