Tear out most of the legacy code in the scenario editor - see below for details

- All Carbon code is gone
- Many dialogs converted; some are still left unimplemented since they still need to be converted
- Menus converted to a xib file
- The giant arrays specifying the configuration of the special node dialog for each special node type have been replaced with maps and sets.

Changes to dialogs:
- pict choice dialog can now show picts of differing types; this was required for picking a monster graphic, as monsters of all sizes need to be shown in the same dialog
- string choice dialog can set the title, and properly shows the currently selected string
- LEDs now accept font format
- Fixed LED group's calculation of its rect
- Fixed LED group crashing if it has no selection
- Tabbing between text fields now works
- Fix display of larger monster graphics in dialogs
- Fix the script element content showing in the browser preview
This commit is contained in:
2014-07-12 22:13:27 -04:00
parent bbc9667c88
commit 41c3396aa3
80 changed files with 7983 additions and 4005 deletions

View File

@@ -108,6 +108,41 @@ sf::Color cPict::getColour() throw(xUnsupportedProp) {
void cPict::setPict(pic_num_t num, ePicType type){
picNum = num;
picType = type;
switch(picType){
case PIC_DLOG:
frame.right = frame.left + 36;
frame.bottom = frame.top + 36;
break;
case PIC_DLOG_LG:
frame.right = frame.left + 72;
frame.bottom = frame.top + 72;
break;
case PIC_SCEN:
case PIC_TALK:
frame.right = frame.left + 32;
frame.bottom = frame.top + 32;
break;
case PIC_SCEN_LG:
frame.right = frame.left + 64;
frame.bottom = frame.top + 64;
break;
case PIC_MISSILE:
frame.right = frame.left + 18;
frame.bottom = frame.top + 18;
break;
case PIC_TER_MAP:
frame.right = frame.left + 24;
frame.bottom = frame.top + 24;
break;
case PIC_STATUS:
frame.right = frame.left + 12;
frame.bottom = frame.top + 12;
break;
default:
frame.right = frame.left + 28;
frame.bottom = frame.top + 36;
break;
}
}
void cPict::setPict(pic_num_t num) {
@@ -213,6 +248,8 @@ ePicType operator+ (ePicType lhs, ePicTypeMod rhs){
default:
return lhs;
}
case PIC_LARGE:
return (lhs + PIC_WIDE) + PIC_TALL;
case PIC_CUSTOM:
switch(lhs){
case PIC_TER:
@@ -308,6 +345,8 @@ ePicType operator- (ePicType lhs, ePicTypeMod rhs){
default:
return lhs;
}
case PIC_LARGE:
return (lhs - PIC_WIDE) - PIC_TALL;
case PIC_CUSTOM:
switch(lhs){
case PIC_CUSTOM_TER:
@@ -543,15 +582,13 @@ void cPict::drawPresetMonstWide(short num, RECT to_rect){
short m_start_pic = m_pic_index[num].i;
std::shared_ptr<sf::Texture> from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
RECT from_rect = calcDefMonstRect(num, animFrame);
RECT from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(to_rect.left,to_rect.top + 7);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
m_start_pic = m_pic_index[num].i + 1;
from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
from_rect = calcDefMonstRect(num, animFrame);
from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(14,0);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
}
@@ -564,15 +601,13 @@ void cPict::drawPresetMonstTall(short num, RECT to_rect){
short m_start_pic = m_pic_index[num].i;
std::shared_ptr<sf::Texture> from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
RECT from_rect = calcDefMonstRect(num, animFrame);
RECT from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(to_rect.left + 7,to_rect.top);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
m_start_pic = m_pic_index[num].i + 1;
from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
from_rect = calcDefMonstRect(num, animFrame);
from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(0,18);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
}
@@ -585,29 +620,25 @@ void cPict::drawPresetMonstLg(short num, RECT to_rect){
short m_start_pic = m_pic_index[num].i;
std::shared_ptr<sf::Texture> from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
RECT from_rect = calcDefMonstRect(num, animFrame);
RECT from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(to_rect.left,to_rect.top);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
m_start_pic = m_pic_index[num].i + 1;
from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
from_rect = calcDefMonstRect(num, animFrame);
from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(14,0);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
m_start_pic = m_pic_index[num].i + 2;
from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
from_rect = calcDefMonstRect(num, animFrame);
from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(-14,18);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
m_start_pic = m_pic_index[num].i + 3;
from_gw = getSheet(SHEET_MONST, m_start_pic / 20);
m_start_pic = m_start_pic % 20;
from_rect = calcDefMonstRect(num, animFrame);
from_rect = calcDefMonstRect(m_start_pic % 20, animFrame);
small_monst_rect.offset(14,0);
rect_draw_some_item(*from_gw, from_rect, *inWindow, small_monst_rect, sf::BlendAlpha);
}