aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2009-05-23 00:05:16 +0000
committerJohannes Schickel2009-05-23 00:05:16 +0000
commitc87f3199f82c5166a680f1ce9952777e8b4a6068 (patch)
treef24f0226bf6485c755af8a0470281273a3e7f76e /engines
parent9e000c662b8645257f2fbd66c072ea54ee7786bb (diff)
downloadscummvm-rg350-c87f3199f82c5166a680f1ce9952777e8b4a6068.tar.gz
scummvm-rg350-c87f3199f82c5166a680f1ce9952777e8b4a6068.tar.bz2
scummvm-rg350-c87f3199f82c5166a680f1ce9952777e8b4a6068.zip
Reserve opcode array entries beforehand, should save some reallocation and copying.
svn-id: r40798
Diffstat (limited to 'engines')
-rw-r--r--engines/kyra/script_hof.cpp3
-rw-r--r--engines/kyra/script_lok.cpp1
-rw-r--r--engines/kyra/script_lol.cpp4
-rw-r--r--engines/kyra/script_mr.cpp5
4 files changed, 12 insertions, 1 deletions
diff --git a/engines/kyra/script_hof.cpp b/engines/kyra/script_hof.cpp
index 2a55dfa484..0327516b2e 100644
--- a/engines/kyra/script_hof.cpp
+++ b/engines/kyra/script_hof.cpp
@@ -1482,6 +1482,7 @@ typedef Common::Functor2Mem<const TIM*, const uint16*, int, KyraEngine_HoF> TIMO
void KyraEngine_HoF::setupOpcodeTable() {
Common::Array<const Opcode*> *table = 0;
+ _opcodes.reserve(176);
SetOpcodeTable(_opcodes);
// 0x00
Opcode(o2_setCharacterFacingRefresh);
@@ -1705,6 +1706,7 @@ void KyraEngine_HoF::setupOpcodeTable() {
Opcode(o2_demoFinale);
Opcode(o2_dummy);
+ _opcodesAnimation.reserve(6);
SetOpcodeTable(_opcodesAnimation);
// 0x00
@@ -1718,6 +1720,7 @@ void KyraEngine_HoF::setupOpcodeTable() {
// ---- TIM opcodes
+ _timOpcodes.reserve(4);
// 0x00
OpcodeTim(t2_initChat);
OpcodeTim(t2_updateSceneAnim);
diff --git a/engines/kyra/script_lok.cpp b/engines/kyra/script_lok.cpp
index 5eb86519a8..6d8c27fadc 100644
--- a/engines/kyra/script_lok.cpp
+++ b/engines/kyra/script_lok.cpp
@@ -1773,6 +1773,7 @@ typedef Common::Functor1Mem<EMCState*, int, KyraEngine_LoK> OpcodeV1;
void KyraEngine_LoK::setupOpcodeTable() {
Common::Array<const Opcode *> *table = 0;
+ _opcodes.reserve(157);
SetOpcodeTable(_opcodes);
// 0x00
Opcode(o1_magicInMouseItem);
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index 886869fb79..a7b3d573b2 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -2250,6 +2250,7 @@ typedef Common::Functor2Mem<const TIM *, const uint16 *, int, LoLEngine> TIMOpco
void LoLEngine::setupOpcodeTable() {
Common::Array<const Opcode*> *table = 0;
+ _opcodes.reserve(192);
SetOpcodeTable(_opcodes);
// 0x00
Opcode(olol_setWallType);
@@ -2540,6 +2541,8 @@ void LoLEngine::setupOpcodeTable() {
OpcodeUnImpl();
Common::Array<const TIMOpcode*> *timTable = 0;
+
+ _timIntroOpcodes.reserve(8);
SetTimOpcodeTable(_timIntroOpcodes);
// 0x00
@@ -2554,6 +2557,7 @@ void LoLEngine::setupOpcodeTable() {
OpcodeTimUnImpl();
OpcodeTimUnImpl();
+ _timIngameOpcodes.reserve(17);
SetTimOpcodeTable(_timIngameOpcodes);
// 0x00
diff --git a/engines/kyra/script_mr.cpp b/engines/kyra/script_mr.cpp
index 8eb703e38d..768a93b6ca 100644
--- a/engines/kyra/script_mr.cpp
+++ b/engines/kyra/script_mr.cpp
@@ -1149,6 +1149,7 @@ typedef Common::Functor1Mem<EMCState*, int, KyraEngine_MR> OpcodeV3;
void KyraEngine_MR::setupOpcodeTable() {
Common::Array<const Opcode*> *table = 0;
+ _opcodes.reserve(176);
SetOpcodeTable(_opcodes);
// 0x00
Opcode(o3_getMalcolmShapes);
@@ -1371,18 +1372,20 @@ void KyraEngine_MR::setupOpcodeTable() {
OpcodeUnImpl();
Opcode(o3_dummy);
+ _opcodesAnimation.reserve(8);
SetOpcodeTable(_opcodesAnimation);
// 0x00
Opcode(o2a_setAnimationShapes);
Opcode(o3a_setCharacterFrame);
Opcode(o3_playSoundEffect);
Opcode(o3_dummy);
- // 0x0a
+ // 0x04
Opcode(o2a_setResetFrame);
Opcode(o1_getRand);
Opcode(o3_getMalcolmShapes);
Opcode(o3_dummy);
+ _opcodesDialog.reserve(5);
SetOpcodeTable(_opcodesDialog);
// 0x00
Opcode(o3d_updateAnim);