Add backend support for multiple brush sizes for internal map editor.
git-svn-id: svn+ssh://svn.gna.org/svn/warzone/trunk@4734 4a71c877-e1ca-e34f-864e-861f7616d084master
parent
e853c606f8
commit
843713a153
45
src/edit3d.c
45
src/edit3d.c
|
@ -41,58 +41,51 @@ is invalid (not currently being used)
|
|||
UDWORD buildState = BUILD3D_NONE;
|
||||
BUILDDETAILS sBuildDetails;
|
||||
HIGHLIGHT buildSite;
|
||||
int brushSize = 1;
|
||||
bool editMode = false;
|
||||
|
||||
// Initialisation function for statis & globals in this module.
|
||||
//
|
||||
void Edit3DInitVars(void)
|
||||
{
|
||||
buildState = BUILD3D_NONE;
|
||||
brushSize = 1;
|
||||
}
|
||||
|
||||
/* Raises a tile by a #defined height */
|
||||
void raiseTile(int tile3dX, int tile3dY)
|
||||
{
|
||||
MAPTILE *psTile;
|
||||
int i, j;
|
||||
|
||||
if (tile3dX < 0 || tile3dX > mapWidth - 1 || tile3dY < 0 || tile3dY > mapHeight - 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
psTile = mapTile(tile3dX,tile3dY);
|
||||
adjustTileHeight(psTile,TILE_RAISE);
|
||||
|
||||
psTile = mapTile(tile3dX+1,tile3dY);
|
||||
adjustTileHeight(psTile,TILE_RAISE);
|
||||
|
||||
psTile = mapTile(tile3dX+1,tile3dY+1);
|
||||
adjustTileHeight(psTile,TILE_RAISE);
|
||||
|
||||
psTile = mapTile(tile3dX,tile3dY+1);
|
||||
adjustTileHeight(psTile,TILE_RAISE);
|
||||
for (i = tile3dX; i <= MIN(mapWidth - 1, tile3dX + brushSize); i++)
|
||||
{
|
||||
for (j = tile3dY; j <= MIN(mapHeight - 1, tile3dY + brushSize); j++)
|
||||
{
|
||||
adjustTileHeight(mapTile(i, j), TILE_RAISE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Lowers a tile by a #defined height */
|
||||
void lowerTile(int tile3dX, int tile3dY)
|
||||
{
|
||||
MAPTILE *psTile;
|
||||
int i, j;
|
||||
|
||||
if (tile3dX < 0 || tile3dX > mapWidth - 1 || tile3dY < 0 || tile3dY > mapHeight - 1)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
psTile = mapTile(tile3dX,tile3dY);
|
||||
adjustTileHeight(psTile,TILE_LOWER);
|
||||
|
||||
psTile = mapTile(tile3dX+1,tile3dY);
|
||||
adjustTileHeight(psTile,TILE_LOWER);
|
||||
|
||||
psTile = mapTile(tile3dX+1,tile3dY+1);
|
||||
adjustTileHeight(psTile,TILE_LOWER);
|
||||
|
||||
psTile = mapTile(tile3dX,tile3dY+1);
|
||||
adjustTileHeight(psTile,TILE_LOWER);
|
||||
for (i = tile3dX; i <= MIN(mapWidth - 1, tile3dX + brushSize); i++)
|
||||
{
|
||||
for (j = tile3dY; j <= MIN(mapHeight - 1, tile3dY + brushSize); j++)
|
||||
{
|
||||
adjustTileHeight(mapTile(i, j), TILE_LOWER);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Ensures any adjustment to tile elevation is within allowed ranges */
|
||||
|
|
|
@ -70,6 +70,8 @@ extern BUILDDETAILS sBuildDetails;
|
|||
|
||||
extern UDWORD buildState;
|
||||
extern UDWORD temp;
|
||||
extern bool editMode;
|
||||
extern int brushSize;
|
||||
|
||||
/*returns true if the build state is not equal to BUILD3D_NONE*/
|
||||
extern BOOL tryingToGetLocation(void);
|
||||
|
|
21
src/hci.c
21
src/hci.c
|
@ -78,7 +78,6 @@
|
|||
//#define EDIT_OPTIONS
|
||||
|
||||
static UDWORD newMapWidth, newMapHeight;
|
||||
static bool editPause = false;
|
||||
|
||||
#define RETXOFFSET (0)// Reticule button offset
|
||||
#define RETYOFFSET (0)
|
||||
|
@ -1347,7 +1346,7 @@ static void intProcessOptions(UDWORD id)
|
|||
if (mapNew(newMapWidth, newMapHeight))
|
||||
{
|
||||
// Set pause
|
||||
editPause = true;
|
||||
editMode = true;
|
||||
setEditPause(true);
|
||||
/* Managed to create a new map so quit the option screen */
|
||||
intRemoveOptions();
|
||||
|
@ -1416,16 +1415,16 @@ static void intProcessOptions(UDWORD id)
|
|||
intMode = INT_NORMAL;
|
||||
break;
|
||||
case IDOPT_PAUSE:
|
||||
if (editPause)
|
||||
if (editMode)
|
||||
{
|
||||
widgSetButtonState(psWScreen, IDOPT_PAUSE, 0);
|
||||
editPause = false;
|
||||
editMode = false;
|
||||
setEditPause(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
widgSetButtonState(psWScreen, IDOPT_PAUSE, WBUT_CLICKLOCK);
|
||||
editPause = true;
|
||||
editMode = true;
|
||||
setEditPause(true);
|
||||
}
|
||||
break;
|
||||
|
@ -1784,7 +1783,7 @@ INT_RETVAL intRunWidgets(void)
|
|||
case IDRET_BUILD:
|
||||
intResetScreen(true);
|
||||
widgSetButtonState(psWScreen, IDRET_BUILD, WBUT_CLICKLOCK);
|
||||
if (editPause)
|
||||
if (editMode)
|
||||
{
|
||||
intProcessOptions(IDOPT_STRUCT);
|
||||
}
|
||||
|
@ -1797,7 +1796,7 @@ INT_RETVAL intRunWidgets(void)
|
|||
case IDRET_MANUFACTURE:
|
||||
intResetScreen(true);
|
||||
widgSetButtonState(psWScreen, IDRET_MANUFACTURE, WBUT_CLICKLOCK);
|
||||
if (editPause)
|
||||
if (editMode)
|
||||
{
|
||||
intProcessOptions(IDOPT_DROID);
|
||||
}
|
||||
|
@ -4153,7 +4152,7 @@ BOOL intAddOptions(void)
|
|||
{
|
||||
return false;
|
||||
}
|
||||
if (editPause)
|
||||
if (editMode)
|
||||
{
|
||||
widgSetButtonState(psWScreen, IDOPT_PAUSE, WBUT_CLICKLOCK);
|
||||
}
|
||||
|
@ -7054,10 +7053,10 @@ void intCheckReticuleButtons(void)
|
|||
int i;
|
||||
|
||||
ReticuleEnabled[RETBUT_CANCEL].Enabled = true;
|
||||
ReticuleEnabled[RETBUT_FACTORY].Enabled = editPause;
|
||||
ReticuleEnabled[RETBUT_FACTORY].Enabled = editMode;
|
||||
ReticuleEnabled[RETBUT_RESEARCH].Enabled = false;
|
||||
ReticuleEnabled[RETBUT_BUILD].Enabled = editPause;
|
||||
ReticuleEnabled[RETBUT_DESIGN].Enabled = editPause;
|
||||
ReticuleEnabled[RETBUT_BUILD].Enabled = editMode;
|
||||
ReticuleEnabled[RETBUT_DESIGN].Enabled = editMode;
|
||||
ReticuleEnabled[RETBUT_INTELMAP].Enabled = true;
|
||||
ReticuleEnabled[RETBUT_COMMAND].Enabled = false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue