WIP editing/creating/deleting types, show the change site

This commit is contained in:
2025-06-12 13:32:42 -05:00
parent 7083b415cd
commit 46c00579d1

View File

@@ -17,6 +17,7 @@ extern void start_out_edit();
extern void redraw_screen(); extern void redraw_screen();
extern void set_current_town(int,bool first_restore = false); extern void set_current_town(int,bool first_restore = false);
extern eScenMode overall_mode; extern eScenMode overall_mode;
extern eDrawMode draw_mode;
cTerrainAction::cTerrainAction(std::string name, short town_num, location where, bool reversed) : cAction(name, reversed) { cTerrainAction::cTerrainAction(std::string name, short town_num, location where, bool reversed) : cAction(name, reversed) {
area.is_town = true; area.is_town = true;
@@ -97,7 +98,11 @@ aCreateDeleteTown::~aCreateDeleteTown() {
} }
bool aCreateDeleteTerrain::undo_me() { bool aCreateDeleteTerrain::undo_me() {
// TODO if not in MODE_EDIT_TYPES, show it // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_TERRAIN)){
start_type_editing(DRAW_TERRAIN);
// TODO Go to scroll maximum
}
for(cTerrain ter : terrains){ for(cTerrain ter : terrains){
scenario.ter_types.pop_back(); scenario.ter_types.pop_back();
} }
@@ -105,7 +110,11 @@ bool aCreateDeleteTerrain::undo_me() {
} }
bool aCreateDeleteTerrain::redo_me() { bool aCreateDeleteTerrain::redo_me() {
// TODO if not in MODE_EDIT_TYPES, show it // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_TERRAIN)){
start_type_editing(DRAW_TERRAIN);
// TODO Go to scroll maximum
}
for(cTerrain ter : terrains){ for(cTerrain ter : terrains){
scenario.ter_types.push_back(ter); scenario.ter_types.push_back(ter);
} }
@@ -113,43 +122,71 @@ bool aCreateDeleteTerrain::redo_me() {
} }
bool aEditClearTerrain::undo_me() { bool aEditClearTerrain::undo_me() {
// TODO show the type // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_TERRAIN)){
start_type_editing(DRAW_TERRAIN);
// TODO scroll to show the type
}
scenario.ter_types[which] = before; scenario.ter_types[which] = before;
return true; return true;
} }
bool aEditClearTerrain::redo_me() { bool aEditClearTerrain::redo_me() {
// TODO show the type // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_TERRAIN)){
start_type_editing(DRAW_TERRAIN);
// TODO scroll to show the type
}
scenario.ter_types[which] = after; scenario.ter_types[which] = after;
return true; return true;
} }
bool aEditClearMonster::undo_me() { bool aEditClearMonster::undo_me() {
// TODO show the type // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_MONST)){
start_type_editing(DRAW_MONST);
// TODO scroll to show the type
}
scenario.scen_monsters[which] = before; scenario.scen_monsters[which] = before;
return true; return true;
} }
bool aEditClearMonster::redo_me() { bool aEditClearMonster::redo_me() {
// TODO show the type // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_MONST)){
start_type_editing(DRAW_MONST);
// TODO scroll to show the type
}
scenario.scen_monsters[which] = after; scenario.scen_monsters[which] = after;
return true; return true;
} }
bool aEditClearItem::undo_me() { bool aEditClearItem::undo_me() {
// TODO show the type // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_ITEM)){
start_type_editing(DRAW_ITEM);
// TODO scroll to show the type
}
scenario.scen_items[which] = before; scenario.scen_items[which] = before;
return true; return true;
} }
bool aEditClearItem::redo_me() { bool aEditClearItem::redo_me() {
// TODO show the type // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_ITEM)){
start_type_editing(DRAW_ITEM);
// TODO scroll to show the type
}
scenario.scen_items[which] = after; scenario.scen_items[which] = after;
return true; return true;
} }
bool aCreateDeleteMonster::undo_me() { bool aCreateDeleteMonster::undo_me() {
// TODO if not in MODE_EDIT_TYPES, show it // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_MONST)){
start_type_editing(DRAW_MONST);
// TODO Go to scroll maximum
}
for(cMonster monst : monsters){ for(cMonster monst : monsters){
scenario.scen_monsters.pop_back(); scenario.scen_monsters.pop_back();
} }
@@ -157,7 +194,11 @@ bool aCreateDeleteMonster::undo_me() {
} }
bool aCreateDeleteMonster::redo_me() { bool aCreateDeleteMonster::redo_me() {
// TODO if not in MODE_EDIT_TYPES, show it // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_MONST)){
start_type_editing(DRAW_MONST);
// TODO Go to scroll maximum
}
for(cMonster monst : monsters){ for(cMonster monst : monsters){
scenario.scen_monsters.push_back(monst); scenario.scen_monsters.push_back(monst);
} }
@@ -165,7 +206,11 @@ bool aCreateDeleteMonster::redo_me() {
} }
bool aCreateDeleteItem::undo_me() { bool aCreateDeleteItem::undo_me() {
// TODO if not in MODE_EDIT_TYPES, show it // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_ITEM)){
start_type_editing(DRAW_ITEM);
// TODO Go to scroll max
}
for(cItem item : items){ for(cItem item : items){
scenario.scen_items.pop_back(); scenario.scen_items.pop_back();
} }
@@ -173,7 +218,11 @@ bool aCreateDeleteItem::undo_me() {
} }
bool aCreateDeleteItem::redo_me() { bool aCreateDeleteItem::redo_me() {
// TODO if not in MODE_EDIT_TYPES, show it // if not in MODE_EDIT_TYPES, show it
if(!(overall_mode == MODE_EDIT_TYPES && draw_mode == DRAW_ITEM)){
start_type_editing(DRAW_ITEM);
// TODO Go to scroll max
}
for(cItem item : items){ for(cItem item : items){
scenario.scen_items.push_back(item); scenario.scen_items.push_back(item);
} }
@@ -333,13 +382,21 @@ bool aEditPlacedCreature::redo_me() {
} }
bool aCreateDeleteSpecialItem::undo_me() { bool aCreateDeleteSpecialItem::undo_me() {
if(overall_mode != MODE_EDIT_SPECIAL_ITEMS) start_special_item_editing(); // If not editing special items, show it
if(overall_mode != MODE_EDIT_SPECIAL_ITEMS){
start_special_item_editing();
// TODO Go to scroll maximum
}
scenario.special_items.pop_back(); scenario.special_items.pop_back();
return true; return true;
} }
bool aCreateDeleteSpecialItem::redo_me() { bool aCreateDeleteSpecialItem::redo_me() {
if(overall_mode != MODE_EDIT_SPECIAL_ITEMS) start_special_item_editing(); // If not editing special items, show it
if(overall_mode != MODE_EDIT_SPECIAL_ITEMS){
start_special_item_editing();
// TODO Go to scroll maximum
}
scenario.special_items.push_back(item); scenario.special_items.push_back(item);
return true; return true;
} }