Convert five more dialogs and fix the string choice dialog
(The latter was always returning 0)
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
#include <algorithm>
|
||||
|
||||
#include <functional>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
#include "dialog.h"
|
||||
#include "dlogutil.h"
|
||||
#include "mathutil.h"
|
||||
@@ -131,11 +132,7 @@ cStringChoice::cStringChoice(
|
||||
std::string title,
|
||||
cDialog* parent
|
||||
) : dlg("choose-string.xml",parent) {
|
||||
using namespace std::placeholders;
|
||||
dlg["left"].attachClickHandler(std::bind(&cStringChoice::onLeft,this,_1,_2));
|
||||
dlg["right"].attachClickHandler(std::bind(&cStringChoice::onRight,this,_1,_2));
|
||||
dlg["done"].attachClickHandler(std::bind(&cStringChoice::onOkay,this,_1,_2));
|
||||
dlg["cancel"].attachClickHandler(std::bind(&cStringChoice::onCancel,this,_1,_2));
|
||||
attachHandlers();
|
||||
if(!title.empty()) dlg["title"].setText(title);
|
||||
strings = strs;
|
||||
}
|
||||
@@ -146,13 +143,19 @@ cStringChoice::cStringChoice(
|
||||
std::string title,
|
||||
cDialog* parent
|
||||
) : dlg("choose-string.xml",parent) {
|
||||
attachHandlers();
|
||||
if(!title.empty()) dlg["title"].setText(title);
|
||||
copy(begin,end,std::inserter(strings, strings.begin()));
|
||||
}
|
||||
|
||||
void cStringChoice::attachHandlers() {
|
||||
using namespace std::placeholders;
|
||||
dlg["left"].attachClickHandler(std::bind(&cStringChoice::onLeft,this,_1,_2));
|
||||
dlg["right"].attachClickHandler(std::bind(&cStringChoice::onRight,this,_1,_2));
|
||||
dlg["done"].attachClickHandler(std::bind(&cStringChoice::onOkay,this,_1,_2));
|
||||
dlg["cancel"].attachClickHandler(std::bind(&cStringChoice::onCancel,this,_1,_2));
|
||||
if(!title.empty()) dlg["title"].setText(title);
|
||||
copy(begin,end,std::inserter(strings, strings.begin()));
|
||||
leds = &dynamic_cast<cLedGroup&>(dlg["strings"]);
|
||||
leds->attachFocusHandler(std::bind(&cStringChoice::onSelect,this,_1,_3));
|
||||
}
|
||||
|
||||
size_t cStringChoice::show(std::string select){
|
||||
@@ -215,6 +218,13 @@ bool cStringChoice::onOkay(cDialog& me, std::string id __attribute__((unused))){
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cStringChoice::onSelect(cDialog& me, bool losing) {
|
||||
if(losing) return true;
|
||||
int i = boost::lexical_cast<int>(leds->getSelected().substr(3));
|
||||
cur = page * 40 + i - 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
cChoiceDlog::cChoiceDlog(std::string file, std::vector<std::string> buttons, cDialog* p) : dlg(file, p) {
|
||||
using namespace std::placeholders;
|
||||
std::vector<std::string>::iterator iter = buttons.begin();
|
||||
|
||||
@@ -86,9 +86,12 @@ class cStringChoice {
|
||||
bool onRight(cDialog& me, std::string id);
|
||||
bool onCancel(cDialog& me, std::string id);
|
||||
bool onOkay(cDialog& me, std::string id);
|
||||
bool onSelect(cDialog& me, bool losing);
|
||||
void attachHandlers();
|
||||
void fillPage();
|
||||
std::vector<std::string> strings;
|
||||
size_t page, cur;
|
||||
cLedGroup* leds;
|
||||
public:
|
||||
explicit cStringChoice(std::vector<std::string>& strs, std::string title, cDialog* parent = NULL);
|
||||
cStringChoice(std::vector<std::string>::iterator begin, std::vector<std::string>::iterator end, std::string title, cDialog* parent = NULL);
|
||||
|
||||
@@ -34,8 +34,6 @@ extern cSpeech null_talk_node;
|
||||
extern location cur_out;
|
||||
extern short start_volume, start_dir;
|
||||
|
||||
short cur_shortcut;
|
||||
|
||||
void init_scenario() {
|
||||
short i;
|
||||
rectangle dummy_rect;
|
||||
@@ -1252,33 +1250,32 @@ void edit_spec_item(short which_item) {
|
||||
item_dlg.run();
|
||||
}
|
||||
|
||||
void put_save_rects_in_dlog() {
|
||||
#if 0
|
||||
void put_save_rects_in_dlog(cDialog& me) {
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
CDSN(807,3 + 5 * i,scenario.store_item_rects[i].top);
|
||||
CDSN(807,4 + 5 * i,scenario.store_item_rects[i].left);
|
||||
CDSN(807,5 + 5 * i,scenario.store_item_rects[i].bottom);
|
||||
CDSN(807,6 + 5 * i,scenario.store_item_rects[i].right);
|
||||
CDSN(807,2 + 5 * i,scenario.store_item_towns[i]);
|
||||
std::string id = std::to_string(i + 1);
|
||||
me["top" + id].setTextToNum(scenario.store_item_rects[i].top);
|
||||
me["left" + id].setTextToNum(scenario.store_item_rects[i].left);
|
||||
me["bottom" + id].setTextToNum(scenario.store_item_rects[i].bottom);
|
||||
me["right" + id].setTextToNum(scenario.store_item_rects[i].right);
|
||||
me["town" + id].setTextToNum(scenario.store_item_towns[i]);
|
||||
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool save_save_rects() {
|
||||
#if 0
|
||||
bool save_save_rects(cDialog& me) {
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 3; i++) {
|
||||
scenario.store_item_rects[i].top = CDGN(807,3 + 5 * i);
|
||||
scenario.store_item_rects[i].left = CDGN(807,4 + 5 * i);
|
||||
scenario.store_item_rects[i].bottom = CDGN(807,5 + 5 * i);
|
||||
scenario.store_item_rects[i].right = CDGN(807,6 + 5 * i);
|
||||
scenario.store_item_towns[i] = CDGN(807,2 + 5 * i);
|
||||
std::string id = std::to_string(i + 1);
|
||||
scenario.store_item_rects[i].top = me["top" + id].getTextAsNum();
|
||||
scenario.store_item_rects[i].left = me["left" + id].getTextAsNum();
|
||||
scenario.store_item_rects[i].bottom = me["bottom" + id].getTextAsNum();
|
||||
scenario.store_item_rects[i].right = me["right" + id].getTextAsNum();
|
||||
scenario.store_item_towns[i] = me["town" + id].getTextAsNum();
|
||||
if ((scenario.store_item_towns[i] < -1) || (scenario.store_item_towns[i] >= 200)) {
|
||||
give_error("Towns must be in 0 to 200 range (or -1 for no save items rectangle).","",807);
|
||||
giveError("Towns must be in 0 to 200 range (or -1 for no save items rectangle).","",&me);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -1291,353 +1288,249 @@ bool save_save_rects() {
|
||||
((scenario.store_item_towns[2] == scenario.store_item_towns[0]) &&
|
||||
(scenario.store_item_towns[2] >= 0) && (scenario.store_item_towns[0] >= 0))
|
||||
) {
|
||||
give_error("The three towns towns with saved item rectangles must be different.","",807);
|
||||
giveError("The three towns towns with saved item rectangles must be different.","",&me);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void edit_save_rects_event_filter (short save_rects_hit) {
|
||||
#if 0
|
||||
switch (save_rects_hit) {
|
||||
case 18:
|
||||
toast_dialog();
|
||||
break;
|
||||
case 17:
|
||||
if (save_save_rects() == true)
|
||||
toast_dialog();
|
||||
break;
|
||||
|
||||
bool edit_save_rects_event_filter(cDialog& me, std::string item_hit) {
|
||||
if(item_hit == "cancel") {
|
||||
me.toast();
|
||||
} else if(item_hit == "okay") {
|
||||
if(save_save_rects(me))
|
||||
me.toast();
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void edit_save_rects() {
|
||||
#if 0
|
||||
// ignore parent in Mac version
|
||||
short save_rects_hit;
|
||||
using namespace std::placeholders;
|
||||
|
||||
cd_create_dialog_parent_num(807,0);
|
||||
cDialog save_dlg("edit-save-rects.xml");
|
||||
save_dlg.attachClickHandlers(std::bind(edit_save_rects_event_filter, _1, _2), {"okay"});
|
||||
|
||||
put_save_rects_in_dlog();
|
||||
put_save_rects_in_dlog(save_dlg);
|
||||
|
||||
save_rects_hit = cd_run_dialog();
|
||||
cd_kill_dialog(807);
|
||||
#endif
|
||||
save_dlg.run();
|
||||
}
|
||||
|
||||
bool save_horses() {
|
||||
#if 0
|
||||
bool save_vehicles(cDialog& me, cVehicle* vehicles, const short page) {
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
scenario.horses[6 * store_horse_page + i].which_town = CDGN(808,2 + i);
|
||||
if (cre(scenario.horses[6 * store_horse_page + i].which_town,
|
||||
-1,199,"Town number must be from 0 to 199 (or -1 for horse to not exist).","",808) == true) return false;
|
||||
scenario.horses[6 * store_horse_page + i].loc.x = CDGN(808,8 + i);
|
||||
if (cre(scenario.horses[6 * store_horse_page + i].loc.x,
|
||||
0,63,"Horse location coordinates must be from 0 to 63.","",808) == true) return false;
|
||||
scenario.horses[6 * store_horse_page + i].loc.y = CDGN(808,14 + i);
|
||||
if (cre(scenario.horses[6 * store_horse_page + i].loc.y,
|
||||
0,63,"Horse location coordinates must be from 0 to 63.","",808) == true) return false;
|
||||
scenario.horses[6 * store_horse_page + i].property = cd_get_led(808,43 + i);
|
||||
std::string id = std::to_string(i + 1);
|
||||
vehicles[6 * page + i].which_town = me["town" + id].getTextAsNum();
|
||||
if(cre(vehicles[6 * page + i].which_town,
|
||||
-1,199,"Town number must be from 0 to 199 (or -1 for it to not exist).","",&me)) return false;
|
||||
vehicles[6 * page + i].loc.x = me["x" + id].getTextAsNum();
|
||||
if(cre(vehicles[6 * page + i].loc.x,
|
||||
0,63,"coordinates must be from 0 to 63.","",&me)) return false;
|
||||
vehicles[6 * page + i].loc.y = me["y" + id].getTextAsNum();
|
||||
if(cre(vehicles[6 * page + i].loc.y,
|
||||
0,63,"coordinates must be from 0 to 63.","",&me)) return false;
|
||||
vehicles[6 * page + i].property = dynamic_cast<cLed&>(me["owned" + id]).getState() != led_off;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void put_horses_in_dlog() {
|
||||
#if 0
|
||||
void put_vehicles_in_dlog(cDialog& me, cVehicle* vehicles, const short page) {
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
cdsin(808,23 + i,6 * store_horse_page + i);
|
||||
CDSN(808,2 + i,scenario.horses[6 * store_horse_page + i].which_town);
|
||||
CDSN(808,8 + i,scenario.horses[6 * store_horse_page + i].loc.x);
|
||||
CDSN(808,14 + i,scenario.horses[6 * store_horse_page + i].loc.y);
|
||||
cd_set_led(808,43 + i,scenario.horses[6 * store_horse_page + i].property);
|
||||
std::string id = std::to_string(i + 1);
|
||||
me["num" + id].setTextToNum(6 * page + i);
|
||||
me["town" + id].setTextToNum(vehicles[6 * page + i].which_town);
|
||||
me["x" + id].setTextToNum(vehicles[6 * page + i].loc.x);
|
||||
me["y" + id].setTextToNum(vehicles[6 * page + i].loc.y);
|
||||
dynamic_cast<cLed&>(me["owned" + id]).setState(vehicles[6 * page + i].property ? led_red : led_off);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void edit_horses_event_filter (short item_hit) {
|
||||
#if 0
|
||||
bool edit_vehicles_event_filter(cDialog& me, std::string item_hit, cVehicle* vehicles, size_t nVehicles, short& page) {
|
||||
short i;
|
||||
|
||||
switch (item_hit) {
|
||||
case 20:
|
||||
if (save_horses() == true)
|
||||
toast_dialog();
|
||||
break;
|
||||
case 21:
|
||||
if (save_horses() == false) break;
|
||||
store_horse_page--;
|
||||
if (store_horse_page < 0) store_horse_page = 4;
|
||||
put_horses_in_dlog();
|
||||
break;
|
||||
case 22:
|
||||
if (save_horses() == false) break;
|
||||
store_horse_page++;
|
||||
if (store_horse_page > 4) store_horse_page = 0;
|
||||
put_horses_in_dlog();
|
||||
break;
|
||||
default:
|
||||
for (i = 0; i < 6; i++)
|
||||
cd_flip_led(808,43 + i,item_hit);
|
||||
break;
|
||||
if(item_hit == "okay") {
|
||||
if(save_vehicles(me, vehicles, page))
|
||||
me.toast();
|
||||
} else if(item_hit == "left") {
|
||||
if(!save_vehicles(me, vehicles, page)) return true;
|
||||
page--;
|
||||
if(page < 0) page = (nVehicles - 1) / 6;
|
||||
put_vehicles_in_dlog(me, vehicles, page);
|
||||
} else if(item_hit == "right") {
|
||||
if(!save_vehicles(me, vehicles, page)) return true;
|
||||
page++;
|
||||
if(page > (nVehicles - 1) / 6) page = 0;
|
||||
put_vehicles_in_dlog(me, vehicles, page);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void edit_horses() {
|
||||
#if 0
|
||||
// ignore parent in Mac version
|
||||
short horses_hit;
|
||||
using namespace std::placeholders;
|
||||
short page = 0;
|
||||
|
||||
store_horse_page = 0;
|
||||
cDialog horse_dlg("edit-horses.xml");
|
||||
horse_dlg.attachClickHandlers(std::bind(edit_vehicles_event_filter, _1, _2, scenario.horses, 30, std::ref(page)), {"okay", "left", "right"});
|
||||
|
||||
cd_create_dialog_parent_num(808,0);
|
||||
put_vehicles_in_dlog(horse_dlg, scenario.horses, page);
|
||||
|
||||
put_horses_in_dlog();
|
||||
|
||||
horses_hit = cd_run_dialog();
|
||||
cd_kill_dialog(808);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool save_boats() {
|
||||
#if 0
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
scenario.boats[6 * store_boat_page + i].which_town = CDGN(809,2 + i);
|
||||
if (cre(scenario.boats[6 * store_boat_page + i].which_town,
|
||||
-1,199,"Town number must be from 0 to 199 (or -1 for boat to not exist).","",809) == true) return false;
|
||||
scenario.boats[6 * store_boat_page + i].loc.x = CDGN(809,8 + i);
|
||||
if (cre(scenario.boats[6 * store_boat_page + i].loc.x,
|
||||
0,63,"boat location coordinates must be from 0 to 63.","",809) == true) return false;
|
||||
scenario.boats[6 * store_boat_page + i].loc.y = CDGN(809,14 + i);
|
||||
if (cre(scenario.boats[6 * store_boat_page + i].loc.y,
|
||||
0,63,"boat location coordinates must be from 0 to 63.","",809) == true) return false;
|
||||
scenario.boats[6 * store_boat_page + i].property = cd_get_led(809,43 + i);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void put_boats_in_dlog() {
|
||||
#if 0
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 6; i++) {
|
||||
cdsin(809,24 + i,6 * store_boat_page + i);
|
||||
CDSN(809,2 + i,scenario.boats[6 * store_boat_page + i].which_town);
|
||||
CDSN(809,8 + i,scenario.boats[6 * store_boat_page + i].loc.x);
|
||||
CDSN(809,14 + i,scenario.boats[6 * store_boat_page + i].loc.y);
|
||||
cd_set_led(809,43 + i,scenario.boats[6 * store_boat_page + i].property);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void edit_boats_event_filter (short item_hit) {
|
||||
#if 0
|
||||
short i;
|
||||
|
||||
switch (item_hit) {
|
||||
case 20:
|
||||
if (save_boats() == true)
|
||||
toast_dialog();
|
||||
break;
|
||||
case 22:
|
||||
if (save_boats() == false) break;
|
||||
store_boat_page--;
|
||||
if (store_boat_page < 0) store_boat_page = 4;
|
||||
put_boats_in_dlog();
|
||||
break;
|
||||
case 23:
|
||||
if (save_boats() == false) break;
|
||||
store_boat_page++;
|
||||
if (store_boat_page > 4) store_boat_page = 0;
|
||||
put_boats_in_dlog();
|
||||
break;
|
||||
default:
|
||||
for (i = 0; i < 6; i++)
|
||||
cd_flip_led(809,43 + i,item_hit);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
horse_dlg.run();
|
||||
}
|
||||
|
||||
void edit_boats() {
|
||||
#if 0
|
||||
// ignore parent in Mac version
|
||||
short boats_hit;
|
||||
using namespace std::placeholders;
|
||||
short page = 0;
|
||||
|
||||
store_boat_page = 0;
|
||||
cDialog boat_dlg("edit-boats.xml");
|
||||
boat_dlg.attachClickHandlers(std::bind(edit_vehicles_event_filter, _1, _2, scenario.boats, 30, std::ref(page)), {"okay", "left", "right"});
|
||||
|
||||
cd_create_dialog_parent_num(809,0);
|
||||
put_vehicles_in_dlog(boat_dlg, scenario.boats, page);
|
||||
|
||||
put_boats_in_dlog();
|
||||
|
||||
boats_hit = cd_run_dialog();
|
||||
cd_kill_dialog(809);
|
||||
#endif
|
||||
boat_dlg.run();
|
||||
}
|
||||
|
||||
bool save_add_town() {
|
||||
#if 0
|
||||
bool save_add_town(cDialog& me) {
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
scenario.town_to_add_to[i] = CDGN(810,2 + i);
|
||||
std::string id = std::to_string(i + 1);
|
||||
scenario.town_to_add_to[i] = me["town" + id].getTextAsNum();
|
||||
if (cre(scenario.town_to_add_to[i],
|
||||
-1,199,"Town number must be from 0 to 199 (or -1 for no effect).","",810) == true) return false;
|
||||
scenario.flag_to_add_to_town[i][0] = CDGN(810,12 + i);
|
||||
-1,199,"Town number must be from 0 to 199 (or -1 for no effect).","",&me)) return false;
|
||||
scenario.flag_to_add_to_town[i][0] = me["flag" + id + "-x"].getTextAsNum();
|
||||
if (cre(scenario.flag_to_add_to_town[i][0],
|
||||
0,299,"First part of flag must be from 0 to 299.","",810) == true) return false;
|
||||
scenario.flag_to_add_to_town[i][1] = CDGN(810,22 + i);
|
||||
0,299,"First part of flag must be from 0 to 299.","",&me)) return false;
|
||||
scenario.flag_to_add_to_town[i][1] = me["flag" + id + "-y"].getTextAsNum();
|
||||
if (cre(scenario.flag_to_add_to_town[i][1],
|
||||
0,9,"Second part of flag must be from 0 to 9.","",810) == true) return false;
|
||||
0,9,"Second part of flag must be from 0 to 9.","",&me)) return false;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void put_add_town_in_dlog() {
|
||||
#if 0
|
||||
void put_add_town_in_dlog(cDialog& me) {
|
||||
short i;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
CDSN(810,2 + i,scenario.town_to_add_to[i]);
|
||||
CDSN(810,12 + i,scenario.flag_to_add_to_town[i][0]);
|
||||
CDSN(810,22 + i,scenario.flag_to_add_to_town[i][1]);
|
||||
std::string id = std::to_string(i + 1);
|
||||
me["town" + id].setTextToNum(scenario.town_to_add_to[i]);
|
||||
me["flag" + id + "-x"].setTextToNum(scenario.flag_to_add_to_town[i][0]);
|
||||
me["flag" + id + "-y"].setTextToNum(scenario.flag_to_add_to_town[i][1]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void edit_add_town_event_filter (short item_hit) {
|
||||
#if 0
|
||||
switch (item_hit) {
|
||||
case 32:
|
||||
if (save_add_town() == true)
|
||||
toast_dialog();
|
||||
break;
|
||||
|
||||
bool edit_add_town_event_filter(cDialog& me, std::string item_hit) {
|
||||
if(item_hit == "okay") {
|
||||
if(save_add_town(me))
|
||||
me.toast();
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void edit_add_town() {
|
||||
#if 0
|
||||
// ignore parent in Mac version
|
||||
short add_town_hit;
|
||||
using namespace std::placeholders;
|
||||
|
||||
cd_create_dialog_parent_num(810,0);
|
||||
cDialog vary_dlg("edit-town-varying.xml");
|
||||
vary_dlg.attachClickHandlers(std::bind(edit_add_town_event_filter, _1, _2), {"okay"});
|
||||
|
||||
put_add_town_in_dlog();
|
||||
put_add_town_in_dlog(vary_dlg);
|
||||
|
||||
add_town_hit = cd_run_dialog();
|
||||
cd_kill_dialog(810);
|
||||
#endif
|
||||
vary_dlg.run();
|
||||
}
|
||||
|
||||
bool save_item_placement() {
|
||||
#if 0
|
||||
bool save_item_placement(cDialog& me, cScenario::cItemStorage& store_storage, short cur_shortcut) {
|
||||
short i;
|
||||
|
||||
store_storage.property = cd_get_led(812,38);
|
||||
store_storage.ter_type = CDGN(812,22);
|
||||
store_storage.property = dynamic_cast<cLed&>(me["owned"]).getState() != led_off;
|
||||
store_storage.ter_type = me["ter"].getTextAsNum();
|
||||
if (cre(store_storage.ter_type,
|
||||
-1,255,"Terrain Type must be from 0 to 255 (or -1 for No Shortcut).","",812) == true) return false;
|
||||
-1,255,"Terrain Type must be from 0 to 255 (or -1 for No Shortcut).","",&me)) return false;
|
||||
for (i = 0; i < 10; i++) {
|
||||
store_storage.item_num[i] = CDGN(812,2 + i);
|
||||
if (cre(store_storage.item_num[i],
|
||||
-1,399,"All item numbers must be from 0 to 399 (or -1 for No Item).","",812) == true) return false;
|
||||
store_storage.item_odds[i] = CDGN(812,12 + i);
|
||||
if (cre(store_storage.item_odds[i],
|
||||
0,100,"All item chances must bve from 0 to 100.","",812) == true) return false;
|
||||
std::string id = std::to_string(i + 1);
|
||||
store_storage.item_num[i] = me["item" + id].getTextAsNum();
|
||||
if(cre(store_storage.item_num[i],
|
||||
-1,399,"All item numbers must be from 0 to 399 (or -1 for No Item).","",&me) == true) return false;
|
||||
store_storage.item_odds[i] = me["odds" + id].getTextAsNum();
|
||||
if(cre(store_storage.item_odds[i],
|
||||
0,100,"All item chances must bve from 0 to 100.","",&me) == true) return false;
|
||||
}
|
||||
scenario.storage_shortcuts[cur_shortcut] = store_storage;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
void put_item_placement_in_dlog() {
|
||||
#if 0
|
||||
void put_item_placement_in_dlog(cDialog& me, const cScenario::cItemStorage& store_storage, short cur_shortcut) {
|
||||
short i;
|
||||
|
||||
cdsin(812,27,cur_shortcut);
|
||||
cd_set_led(812,38,store_storage.property);
|
||||
CDSN(812,22,store_storage.ter_type);
|
||||
me["num"].setTextToNum(cur_shortcut);
|
||||
dynamic_cast<cLed&>(me["owned"]).setState(store_storage.property ? led_red : led_off);
|
||||
me["ter"].setTextToNum(store_storage.ter_type);
|
||||
for (i = 0; i < 10; i++) {
|
||||
CDSN(812,2 + i,store_storage.item_num[i]);
|
||||
CDSN(812,12 + i,store_storage.item_odds[i]);
|
||||
std::string id = std::to_string(i + 1);
|
||||
me["item" + id].setTextToNum(store_storage.item_num[i]);
|
||||
me["odds" + id].setTextToNum(store_storage.item_odds[i]);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void edit_item_placement_event_filter (short item_hit) {
|
||||
#if 0
|
||||
bool edit_item_placement_event_filter(cDialog& me, std::string item_hit, cScenario::cItemStorage& store_storage, short& cur_shortcut) {
|
||||
short i;
|
||||
|
||||
switch (item_hit) {
|
||||
case 23:
|
||||
if (save_item_placement() == true)
|
||||
toast_dialog();
|
||||
break;
|
||||
case 24:
|
||||
toast_dialog();
|
||||
break;
|
||||
case 26:
|
||||
if (save_item_placement() == false) break;
|
||||
if(item_hit == "okay") {
|
||||
if(save_item_placement(me, store_storage, cur_shortcut))
|
||||
me.toast();
|
||||
} else if(item_hit == "cancel") {
|
||||
me.toast();
|
||||
} else if(item_hit == "left") {
|
||||
if(!save_item_placement(me, store_storage, cur_shortcut)) return true;
|
||||
cur_shortcut--;
|
||||
if (cur_shortcut < 0) cur_shortcut = 9;
|
||||
store_storage = scenario.storage_shortcuts[cur_shortcut];
|
||||
put_item_placement_in_dlog();
|
||||
break;
|
||||
case 25:
|
||||
if (save_item_placement() == false) break;
|
||||
put_item_placement_in_dlog(me, store_storage, cur_shortcut);
|
||||
} else if(item_hit == "right") {
|
||||
if(!save_item_placement(me, store_storage, cur_shortcut)) return true;
|
||||
cur_shortcut++;
|
||||
if (cur_shortcut > 9) cur_shortcut = 0;
|
||||
store_storage = scenario.storage_shortcuts[cur_shortcut];
|
||||
put_item_placement_in_dlog();
|
||||
break;
|
||||
case 41:
|
||||
store_storage.ter_type = CDGN(812,22);
|
||||
i = choose_text_res(-4,0,255,store_storage.ter_type,812,"Which Terrain?");
|
||||
put_item_placement_in_dlog(me, store_storage, cur_shortcut);
|
||||
} else if(item_hit == "choose-ter") {
|
||||
i = me["ter"].getTextAsNum();
|
||||
store_storage.ter_type = i;
|
||||
i = choose_text(STRT_TER,i,&me,"Which Terrain?");
|
||||
if(i >= 0){
|
||||
me["ter"].setTextToNum(i);
|
||||
store_storage.ter_type = i;
|
||||
CDSN(812,22,i);
|
||||
break;
|
||||
default:
|
||||
if ((item_hit >= 42) && (item_hit <= 51)) {
|
||||
i = CDGN(812,2 + item_hit - 42);
|
||||
i = choose_text_res(-2,0,399,i,812,"Place which item?");
|
||||
if (i >= 0)
|
||||
CDSN(812,2 + item_hit - 42,i);
|
||||
break;
|
||||
}
|
||||
cd_flip_led(812,38,item_hit);
|
||||
break;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool edit_item_placement_select_item(cDialog& me, cScenario::cItemStorage& store_storage, short item_hit) {
|
||||
std::string id = "item" + std::to_string(item_hit);
|
||||
short i = me[id].getTextAsNum();
|
||||
store_storage.item_num[item_hit - 1] = i;
|
||||
i = choose_text(STRT_ITEM,i,&me,"Place which item?");
|
||||
if(i >= 0) {
|
||||
me[id].setTextToNum(i);
|
||||
store_storage.item_num[item_hit - 1] = i;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void edit_item_placement() {
|
||||
#if 0
|
||||
// ignore parent in Mac version
|
||||
short item_placement_hit;
|
||||
using namespace std::placeholders;
|
||||
cScenario::cItemStorage store_storage = scenario.storage_shortcuts[0];
|
||||
short cur_shortcut = 0;
|
||||
|
||||
store_storage = scenario.storage_shortcuts[0];
|
||||
cur_shortcut = 0;
|
||||
cDialog shortcut_dlg("edit-item-shortcut.xml");
|
||||
shortcut_dlg.attachClickHandlers(std::bind(edit_item_placement_event_filter, _1, _2, std::ref(store_storage), std::ref(cur_shortcut)), {"okay", "cancel", "left", "right", "choose-ter"});
|
||||
for(int i = 0; i < 10; i++) {
|
||||
std::string id = "choose-item" + std::to_string(i + 1);
|
||||
shortcut_dlg[id].attachClickHandler(std::bind(edit_item_placement_select_item, _1, std::ref(store_storage), i + 1));
|
||||
}
|
||||
|
||||
cd_create_dialog_parent_num(812,0);
|
||||
put_item_placement_in_dlog(shortcut_dlg, store_storage, cur_shortcut);
|
||||
|
||||
put_item_placement_in_dlog();
|
||||
|
||||
item_placement_hit = cd_run_dialog();
|
||||
cd_kill_dialog(812);
|
||||
#endif
|
||||
shortcut_dlg.run();
|
||||
}
|
||||
|
||||
bool save_scen_details() {
|
||||
|
||||
56
rsrc/dialogs/edit-boats.xml
Normal file
56
rsrc/dialogs/edit-boats.xml
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay' debug='true'>
|
||||
<field name='town1' top='100' left='214' width='67' height='16'/>
|
||||
<field name='town2' top='128' left='214' width='67' height='16'/>
|
||||
<field name='town3' top='156' left='214' width='67' height='16'/>
|
||||
<field name='town4' top='184' left='214' width='67' height='16'/>
|
||||
<field name='town5' top='212' left='214' width='67' height='16'/>
|
||||
<field name='town6' top='240' left='214' width='67' height='16'/>
|
||||
<field name='x1' top='100' left='329' width='39' height='16'/>
|
||||
<field name='x2' top='128' left='329' width='39' height='16'/>
|
||||
<field name='x3' top='156' left='329' width='39' height='16'/>
|
||||
<field name='x4' top='184' left='329' width='39' height='16'/>
|
||||
<field name='x5' top='212' left='329' width='39' height='16'/>
|
||||
<field name='x6' top='240' left='329' width='39' height='16'/>
|
||||
<field name='y1' top='100' left='410' width='39' height='16'/>
|
||||
<field name='y2' top='128' left='410' width='39' height='16'/>
|
||||
<field name='y3' top='156' left='410' width='39' height='16'/>
|
||||
<field name='y4' top='184' left='410' width='39' height='16'/>
|
||||
<field name='y5' top='212' left='410' width='39' height='16'/>
|
||||
<field name='y6' top='240' left='410' width='39' height='16'/>
|
||||
<button name='okay' type='regular' top='268' left='468'>OK</button>
|
||||
<text top='268' left='381' width='75' height='16'/>
|
||||
<button name='left' type='left' top='268' left='51'/>
|
||||
<button name='right' type='right' top='268' left='114'/>
|
||||
<text name='num1' top='100' left='152' width='46' height='14'/>
|
||||
<text name='num2' top='128' left='152' width='46' height='14'/>
|
||||
<text name='num3' top='156' left='153' width='46' height='14'/>
|
||||
<text name='num4' top='184' left='153' width='46' height='14'/>
|
||||
<text name='num5' top='211' left='153' width='46' height='14'/>
|
||||
<text name='num6' top='239' left='153' width='46' height='14'/>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='6' left='50' width='256' height='17'>Edit Boats</text>
|
||||
<text top='25' left='50' width='439' height='39'>
|
||||
There can be up to 24 boats in your scenario,
|
||||
each of which must start in some town.
|
||||
The boats can start as the parties property, if you want.
|
||||
If the town is left at -1, the boat won’t exist.
|
||||
</text>
|
||||
<text top='70' left='199' width='106' height='14'>Town to start in</text>
|
||||
<text top='64' left='310' width='76' height='25'>X Location in town</text>
|
||||
<text top='64' left='392' width='81' height='26'>Y Location in town</text>
|
||||
<text top='100' left='50' width='97' height='14'>Horse number</text>
|
||||
<text top='128' left='50' width='97' height='14'>Horse number</text>
|
||||
<text top='156' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='184' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='211' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='239' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='64' left='477' width='70' height='26'>Not Party Property</text>
|
||||
<led name='owned1' state='off' top='100' left='487'/>
|
||||
<led name='owned2' state='off' top='128' left='487'/>
|
||||
<led name='owned3' state='off' top='156' left='488'/>
|
||||
<led name='owned4' state='off' top='184' left='488'/>
|
||||
<led name='owned5' state='off' top='211' left='488'/>
|
||||
<led name='owned6' state='off' top='239' left='488'/>
|
||||
</dialog>
|
||||
60
rsrc/dialogs/edit-horses.xml
Normal file
60
rsrc/dialogs/edit-horses.xml
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay' debug='true'>
|
||||
<field name='town1' top='143' left='214' width='67' height='16'/>
|
||||
<field name='town2' top='171' left='214' width='67' height='16'/>
|
||||
<field name='town3' top='199' left='214' width='67' height='16'/>
|
||||
<field name='town4' top='227' left='214' width='67' height='16'/>
|
||||
<field name='town5' top='255' left='214' width='67' height='16'/>
|
||||
<field name='town6' top='283' left='214' width='67' height='16'/>
|
||||
<field name='x1' top='143' left='329' width='39' height='16'/>
|
||||
<field name='x2' top='171' left='329' width='39' height='16'/>
|
||||
<field name='x3' top='199' left='329' width='39' height='16'/>
|
||||
<field name='x4' top='227' left='329' width='39' height='16'/>
|
||||
<field name='x5' top='255' left='329' width='39' height='16'/>
|
||||
<field name='x6' top='283' left='329' width='39' height='16'/>
|
||||
<field name='y1' top='143' left='410' width='39' height='16'/>
|
||||
<field name='y2' top='171' left='410' width='39' height='16'/>
|
||||
<field name='y3' top='199' left='410' width='39' height='16'/>
|
||||
<field name='y4' top='227' left='410' width='39' height='16'/>
|
||||
<field name='y5' top='255' left='410' width='39' height='16'/>
|
||||
<field name='y6' top='283' left='410' width='39' height='16'/>
|
||||
<button name='okay' type='regular' top='309' left='463'>OK</button>
|
||||
<button name='left' type='left' top='309' left='52'/>
|
||||
<button name='right' type='right' top='309' left='115'/>
|
||||
<text name='num1' top='143' left='152' width='46' height='14'/>
|
||||
<text name='num2' top='171' left='152' width='46' height='14'/>
|
||||
<text name='num3' top='199' left='153' width='46' height='14'/>
|
||||
<text name='num4' top='227' left='153' width='46' height='14'/>
|
||||
<text name='num5' top='254' left='153' width='46' height='14'/>
|
||||
<text name='num6' top='282' left='153' width='46' height='14'/>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='6' left='50' width='256' height='17'>Edit Horses</text>
|
||||
<text top='25' left='50' width='439' height='39'>
|
||||
There can be up to 24 horses in your scenario,
|
||||
each of which must start in some town.
|
||||
The horses can start as the parties property, if you want.
|
||||
Leave the town at -1 to make the horse not exist.
|
||||
</text>
|
||||
<text top='65' left='50' width='439' height='41'>
|
||||
Note that horses can’t walk over certain terrain types (like floors).
|
||||
Be careful not to place horses where they’re stuck and can’t get out.
|
||||
This makes them sad.
|
||||
</text>
|
||||
<text top='113' left='199' width='106' height='14'>Town to start in</text>
|
||||
<text top='107' left='310' width='76' height='25'>X Location in town</text>
|
||||
<text top='107' left='392' width='81' height='26'>Y Location in town</text>
|
||||
<text top='143' left='50' width='97' height='14'>Horse number</text>
|
||||
<text top='171' left='50' width='97' height='14'>Horse number</text>
|
||||
<text top='199' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='227' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='254' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='282' left='51' width='97' height='14'>Horse number</text>
|
||||
<text top='107' left='477' width='70' height='26'>Not Party Property</text>
|
||||
<led name='owned1' state='off' top='143' left='488'/>
|
||||
<led name='owned2' state='off' top='171' left='488'/>
|
||||
<led name='owned3' state='off' top='199' left='488'/>
|
||||
<led name='owned4' state='off' top='227' left='488'/>
|
||||
<led name='owned5' state='off' top='254' left='488'/>
|
||||
<led name='owned6' state='off' top='282' left='488'/>
|
||||
</dialog>
|
||||
63
rsrc/dialogs/edit-item-shortcut.xml
Normal file
63
rsrc/dialogs/edit-item-shortcut.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay' debug='true'>
|
||||
<field name='item1' top='188' left='73' width='39' height='16'/>
|
||||
<field name='item2' top='216' left='73' width='39' height='16'/>
|
||||
<field name='item3' top='244' left='73' width='39' height='16'/>
|
||||
<field name='item4' top='272' left='73' width='39' height='16'/>
|
||||
<field name='item5' top='300' left='73' width='39' height='16'/>
|
||||
<field name='item6' top='188' left='309' width='39' height='16'/>
|
||||
<field name='item7' top='216' left='309' width='39' height='16'/>
|
||||
<field name='item8' top='244' left='309' width='39' height='16'/>
|
||||
<field name='item9' top='272' left='309' width='39' height='16'/>
|
||||
<field name='item10' top='300' left='309' width='39' height='16'/>
|
||||
<field name='odds1' top='188' left='192' width='39' height='16'/>
|
||||
<field name='odds2' top='216' left='192' width='39' height='16'/>
|
||||
<field name='odds3' top='244' left='192' width='39' height='16'/>
|
||||
<field name='odds4' top='272' left='192' width='39' height='16'/>
|
||||
<field name='odds5' top='300' left='192' width='39' height='16'/>
|
||||
<field name='odds6' top='188' left='428' width='39' height='16'/>
|
||||
<field name='odds7' top='216' left='428' width='39' height='16'/>
|
||||
<field name='odds8' top='244' left='428' width='39' height='16'/>
|
||||
<field name='odds9' top='272' left='428' width='39' height='16'/>
|
||||
<field name='odds10' top='300' left='428' width='39' height='16'/>
|
||||
<field name='ter' top='113' left='410' width='42' height='17'/>
|
||||
<button name='okay' type='regular' top='334' left='462'>OK</button>
|
||||
<button name='cancel' type='regular' top='334' left='396' def-key='esc'>Cancel</button>
|
||||
<button name='right' type='right' top='334' left='73' def-key='right'/>
|
||||
<button name='left' type='left' top='334' left='10' def-key='left'/>
|
||||
<text name='num' top='115' left='211' width=' 46' height='14'/>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='6' left='50' width='256' height='20'>Item Placement Shortcuts</text>
|
||||
<text top='25' left='50' width='439' height='40'>
|
||||
You can design shortcuts for automatic placement of items in towns.
|
||||
When editing towns, if you select the Place Automatic Items menu item,
|
||||
the edit will randomly place items you specify in terrain types you specify.
|
||||
</text>
|
||||
<text top='66' left='50' width='439' height='41'>
|
||||
Enter the terrain type to get the items,
|
||||
the numbers of the items to place,
|
||||
and the percentage chance (0-100) that the item is places there.
|
||||
For more details, see the documentation.
|
||||
</text>
|
||||
<text top='115' left='50' width='155' height='14'>Item shortcut number:</text>
|
||||
<text top='115' left='269' width='136' height='14'>Terrain type number:</text>
|
||||
<text top='154' left='50' width='98' height='26'>Number of item to place:</text>
|
||||
<text top='154' left='159' width='119' height='26'>Chance of placing: (0-100%)</text>
|
||||
<text top='154' left='286' width='99' height='36'>Number of item to place:</text>
|
||||
<text top='154' left='395' width='119' height='26'>Chance of placing: (0-100%)</text>
|
||||
<led name='owned' state='off' top='138' left='215'/>
|
||||
<text top='134' left=' 50' width='155' height='14'>Items are always property:</text>
|
||||
<text top='134' left='277' width='297' height='14'>(Leave this at -1 for no shortcut.)</text>
|
||||
<button name='choose-ter' type='regular' top='110' left='458'>Choose</button>
|
||||
<button name='choose-item1' type='regular' top='185' left='118'>Choose</button>
|
||||
<button name='choose-item2' type='regular' top='213' left='118'>Choose</button>
|
||||
<button name='choose-item3' type='regular' top='241' left='118'>Choose</button>
|
||||
<button name='choose-item4' type='regular' top='270' left='118'>Choose</button>
|
||||
<button name='choose-item5' type='regular' top='298' left='118'>Choose</button>
|
||||
<button name='choose-item6' type='regular' top='185' left='354'>Choose</button>
|
||||
<button name='choose-item7' type='regular' top='213' left='354'>Choose</button>
|
||||
<button name='choose-item8' type='regular' top='241' left='354'>Choose</button>
|
||||
<button name='choose-item9' type='regular' top='270' left='354'>Choose</button>
|
||||
<button name='choose-item10' type='regular' top='298' left='354'>Choose</button>
|
||||
</dialog>
|
||||
42
rsrc/dialogs/edit-save-rects.xml
Normal file
42
rsrc/dialogs/edit-save-rects.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay' debug='true'>
|
||||
<field name='town1' top='161' left='214' width='67' height='16'/>
|
||||
<field name='top1' top='161' left='293' width='39' height='16'/>
|
||||
<field name='left1' top='161' left='343' width='39' height='16'/>
|
||||
<field name='bottom1' top='161' left='393' width='39' height='16'/>
|
||||
<field name='right1' top='161' left='443' width='39' height='16'/>
|
||||
<field name='town2' top='189' left='214' width='67' height='16'/>
|
||||
<field name='top2' top='189' left='293' width='39' height='16'/>
|
||||
<field name='left2' top='189' left='343' width='39' height='16'/>
|
||||
<field name='bottom2' top='189' left='393' width='39' height='16'/>
|
||||
<field name='right2' top='189' left='443' width='39' height='16'/>
|
||||
<field name='town3' top='217' left='214' width='67' height='16'/>
|
||||
<field name='top3' top='217' left='293' width='39' height='16'/>
|
||||
<field name='left3' top='217' left='343' width='39' height='16'/>
|
||||
<field name='bottom3' top='217' left='393' width='39' height='16'/>
|
||||
<field name='right3' top='217' left='443' width='39' height='16'/>
|
||||
<button name='okay' type='regular' top='248' left='413'>OK</button>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='6' left='50' width='256' height='44'>Save Items Rectangles</text>
|
||||
<text top='25' left='50' width='438' height='53'>
|
||||
There can be areas in towns where items left there are remembered,
|
||||
even after the party leaves town.
|
||||
Enter the numbers of the towns where items are saved (-1 means no area),
|
||||
and the rectangles where the items left are remembered.
|
||||
</text>
|
||||
<text top='79' left='50' width='438' height='54'>
|
||||
if the party leaves the given town with an item on the ground inside the given rectangle,
|
||||
the item will still be there when they get back.
|
||||
If the item is not inside the rectangle, it is lost.
|
||||
Note that the three towns must be different.
|
||||
</text>
|
||||
<text top='164' left='50' width='153' height='14'>Items save rectangle 1</text>
|
||||
<text top='192' left='50' width='153' height='14'>Items save rectangle 2</text>
|
||||
<text top='220' left='50' width='153' height='14'>Items save rectangle 3</text>
|
||||
<text top='139' left='211' width='70' height='14'>Town num.</text>
|
||||
<text top='139' left='290' width='38' height='14'>Top</text>
|
||||
<text top='139' left='344' width='38' height='14'>Left</text>
|
||||
<text top='139' left='389' width='47' height='14'>Bottom</text>
|
||||
<text top='139' left='441' width='40' height='14'>Right</text>
|
||||
</dialog>
|
||||
51
rsrc/dialogs/edit-town-varying.xml
Normal file
51
rsrc/dialogs/edit-town-varying.xml
Normal file
@@ -0,0 +1,51 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay' debug='true'>
|
||||
<field name='town1' top='130' left='146' width='67' height='16'/>
|
||||
<field name='town2' top='158' left='146' width='67' height='16'/>
|
||||
<field name='town3' top='186' left='146' width='67' height='16'/>
|
||||
<field name='town4' top='214' left='146' width='67' height='16'/>
|
||||
<field name='town5' top='242' left='146' width='67' height='16'/>
|
||||
<field name='town6' top='270' left='146' width='67' height='16'/>
|
||||
<field name='town7' top='298' left='146' width='67' height='16'/>
|
||||
<field name='town8' top='326' left='146' width='67' height='16'/>
|
||||
<field name='town9' top='354' left='146' width='67' height='16'/>
|
||||
<field name='town10' top='382' left='146' width='67' height='16'/>
|
||||
<field name='flag1-x' top='130' left='258' width='40' height='16'/>
|
||||
<field name='flag2-x' top='158' left='258' width='40' height='16'/>
|
||||
<field name='flag3-x' top='186' left='258' width='40' height='16'/>
|
||||
<field name='flag4-x' top='214' left='258' width='40' height='16'/>
|
||||
<field name='flag5-x' top='242' left='258' width='40' height='16'/>
|
||||
<field name='flag6-x' top='270' left='258' width='40' height='16'/>
|
||||
<field name='flag7-x' top='298' left='258' width='40' height='16'/>
|
||||
<field name='flag8-x' top='326' left='258' width='40' height='16'/>
|
||||
<field name='flag9-x' top='354' left='258' width='40' height='16'/>
|
||||
<field name='flag10-x' top='382' left='258' width='40' height='16'/>
|
||||
<field name='flag1-y' top='130' left='344' width='40' height='16'/>
|
||||
<field name='flag2-y' top='158' left='344' width='40' height='16'/>
|
||||
<field name='flag3-y' top='186' left='344' width='40' height='16'/>
|
||||
<field name='flag4-y' top='214' left='344' width='40' height='16'/>
|
||||
<field name='flag5-y' top='242' left='344' width='40' height='16'/>
|
||||
<field name='flag6-y' top='270' left='344' width='40' height='16'/>
|
||||
<field name='flag7-y' top='298' left='344' width='40' height='16'/>
|
||||
<field name='flag8-y' top='326' left='344' width='40' height='16'/>
|
||||
<field name='flag9-y' top='354' left='344' width='40' height='16'/>
|
||||
<field name='flag10-y' top='382' left='344' width='40' height='16'/>
|
||||
<button name='okay' type='regular' top='379' left='419'>OK</button>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='6' left='50' width='256' height='44'>Variable Town Entry</text>
|
||||
<text top='25' left='50' width='439' height='40'>
|
||||
When the party enters a town,
|
||||
you can have the exact town entered vary,
|
||||
depending on circumstances.
|
||||
To do this, specify a town number below,
|
||||
and the Stuff Done flag to add to the town number when that town is entered.
|
||||
</text>
|
||||
<text top='68' left='50' width='439' height='27'>
|
||||
Leave the town at -1 for this to have no effect.
|
||||
For more information on how this works, see the documentation.
|
||||
</text>
|
||||
<text top='102' left='131' width='100' height='14'>Town entered</text>
|
||||
<text top='96' left='235' width='96' height='25'>Stuff Done Flag to add X</text>
|
||||
<text top='96' left='329' width='96' height='25'>Stuff Done Flag to add Y</text>
|
||||
</dialog>
|
||||
Reference in New Issue
Block a user