mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-10 13:06:59 -04:00
- Optimization: common parameters to built in functions are no longer looked up as a string at each call, instead their integer ids are global constants
- Optimization: some other minor tweaks. - Nicer --help message git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@783 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -207,7 +207,7 @@ void ChoiceStyle::initImage() {
|
||||
}
|
||||
Script& script = image.getScript();
|
||||
script.addInstruction(I_PUSH_CONST, lookup);
|
||||
script.addInstruction(I_GET_VAR, string_to_variable(_("input")));
|
||||
script.addInstruction(I_GET_VAR, SCRIPT_VAR_input);
|
||||
script.addInstruction(I_BINARY, I_MEMBER);
|
||||
script.addInstruction(I_CALL, 0);
|
||||
script.addInstruction(I_PUSH_CONST, script_nil);
|
||||
|
||||
+1
-1
@@ -93,7 +93,7 @@ void Game::initCardListColorScript() {
|
||||
// initialize script: field.colors[card.field-name] or else rgb(0,0,0)
|
||||
Script& s = card_list_color_script.getScript();
|
||||
s.addInstruction(I_PUSH_CONST, to_script(&cf->choice_colors_cardlist));
|
||||
s.addInstruction(I_GET_VAR, string_to_variable(_("card")));
|
||||
s.addInstruction(I_GET_VAR, SCRIPT_VAR_card);
|
||||
s.addInstruction(I_MEMBER_C, cf->name);
|
||||
s.addInstruction(I_BINARY, I_MEMBER);
|
||||
s.addInstruction(I_PUSH_CONST, to_script(Color(0,0,0)));
|
||||
|
||||
@@ -462,7 +462,9 @@ String KeywordDatabase::expand(const String& text,
|
||||
}
|
||||
// next becomes current
|
||||
swap(current, next);
|
||||
next.clear();
|
||||
// in the MSVC stl clear frees memory, that is a waste, because we need it again in the next iteration
|
||||
//next.clear();
|
||||
next.resize(0);
|
||||
closure(current);
|
||||
// are we done?
|
||||
FOR_EACH(n, current) {
|
||||
|
||||
@@ -51,15 +51,15 @@ StatsDimension::StatsDimension(const Field& field)
|
||||
// initialize script: primary_choice(card.{field_name})
|
||||
Script& s = script.getScript();
|
||||
s.addInstruction(I_PUSH_CONST, script_primary_choice);
|
||||
s.addInstruction(I_GET_VAR, string_to_variable(_("card")));
|
||||
s.addInstruction(I_GET_VAR, SCRIPT_VAR_card);
|
||||
s.addInstruction(I_MEMBER_C, field.name);
|
||||
s.addInstruction(I_CALL, 1);
|
||||
s.addInstruction(I_NOP, string_to_variable(_("input")));
|
||||
s.addInstruction(I_NOP, SCRIPT_VAR_input);
|
||||
s.addInstruction(I_RET);
|
||||
} else {
|
||||
// initialize script, card.{field_name}
|
||||
Script& s = script.getScript();
|
||||
s.addInstruction(I_GET_VAR, string_to_variable(_("card")));
|
||||
s.addInstruction(I_GET_VAR, SCRIPT_VAR_card);
|
||||
s.addInstruction(I_MEMBER_C, field.name);
|
||||
s.addInstruction(I_RET);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user