diff --git a/Platform/Apple/tools/PackPartitions/src/org/badvision/A2PackPartitions.groovy b/Platform/Apple/tools/PackPartitions/src/org/badvision/A2PackPartitions.groovy index 4861e787..35ecff84 100644 --- a/Platform/Apple/tools/PackPartitions/src/org/badvision/A2PackPartitions.groovy +++ b/Platform/Apple/tools/PackPartitions/src/org/badvision/A2PackPartitions.groovy @@ -789,10 +789,10 @@ class A2PackPartitions def numberAvatars(dataIn) { def nFound = 0 - dataIn.tile.each { tile -> + dataIn.tile.sort{it.@name.toLowerCase()}.each { tile -> def name = tile.@name if (name.toLowerCase().contains("avatar")) - avatars[name.toLowerCase().trim().replaceAll(/\s*-\s*[23][dD]\s*/, "")] = ++nFound + avatars[name.toLowerCase().trim().replaceAll(/\s*-\s*[23][dD]\s*/, "")] = nFound++ } assert nFound >= 1 : "Need at least one 'Avatar' tile." } @@ -808,7 +808,7 @@ class A2PackPartitions def buf = ByteBuffer.allocate(50000) // Add each special tile to the set - dataIn.tile.each { tile -> + dataIn.tile.sort{it.@name.toLowerCase()}.each { tile -> def name = tile.@name def id = tile.@id def data = tiles[id] diff --git a/Platform/Apple/virtual/src/plasma/diskops.pla b/Platform/Apple/virtual/src/plasma/diskops.pla index 9c9afe94..b1390318 100644 --- a/Platform/Apple/virtual/src/plasma/diskops.pla +++ b/Platform/Apple/virtual/src/plasma/diskops.pla @@ -263,6 +263,7 @@ def newGame() word playersModule, globalScriptsModule initHeap(0) // initially empty heap global = getGlobals() + global->b_curAvatar = 0 playersModule = mmgr(QUEUE_LOAD, MODULE_GEN_PLAYERS<<8 | RES_TYPE_MODULE) globalScriptsModule = mmgr(QUEUE_LOAD, MODULE_GEN_GLOBAL_SCRIPTS<<8 | RES_TYPE_MODULE) mmgr(FINISH_LOAD, LEAVE_OPEN) diff --git a/Platform/Apple/virtual/src/plasma/gameloop.pla b/Platform/Apple/virtual/src/plasma/gameloop.pla index 2a5a8ef0..c1c03b13 100644 --- a/Platform/Apple/virtual/src/plasma/gameloop.pla +++ b/Platform/Apple/virtual/src/plasma/gameloop.pla @@ -45,7 +45,6 @@ include "diskops.plh" /////////////////////////////////////////////////////////////////////////////////////////////////// // Data structures -word fooStart include "playtype.pla" word global // the global heap object, from which all live objects must be reachable @@ -1284,7 +1283,7 @@ end /////////////////////////////////////////////////////////////////////////////////////////////////// export def scriptSetAvatar(avatarTileNum) global->b_curAvatar = avatarTileNum - setAvatar(avatarTileNum) + if renderLoaded; setAvatar(avatarTileNum); fin end /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -2468,7 +2467,6 @@ def startGame(ask) mapIs3D = q_mapIs3D mapNum = q_mapNum q_mapNum = 0 - global->b_curAvatar = 0 allowZoneInit = TRUE initMap(q_x, q_y, q_dir) allowZoneInit = FALSE