This patch optimizes things better (fps, start up, & world building), fixes some hitches, makes player movement better, fixes some graphic issues, and fixes many other minor issues.
0.839 change list:
now preload tiles around the viewing area slowly so less building of tiles all at once when you move (less hitches)
now sort drawing surfaces a little better to have less texture changes
now skip light passes on entities if no contribution from light and at least 1 other light has or will be drawn
now skip light passes on blocks if no contribution from light and at least 1 other light has or will be drawn
fixed settleAllLooseSolids, settleAllGases, and settleAllLiquids all looping over level total size instead of level tile size (NULL checks so not crashing but doing a lot of nothing)
decreased StartLightIntensity from 2.0 to 1.6
increased MaxSpeedAccelMult from 3.5 to 5.25
increased MaxSpeedDecelMult from 3.0 to 4.5
decreased GroundJumpImpulseMult penalty on several blocks (mud, tar, ice, etc)
fixed blending with platforms (su-su-supernova)
fixed a blending issue with wood and partial blocks sometimes (Nailclippins)
new entities that show up on screen edge no longer fade in
fixed lock pick experience using wrong level
now cap objectiveLevel in experience stuff to 200
added new dungeon tiles (look same as stone roof, but things can spawn on them, are tougher, and different name)
no longer get fully explored or cleared bonus for levels (really doesn't make sense for this game)
added new quick tip "It is wise to keep your entertainer NPCs at normal or work focus to keep them entertaining other NPCs."
fixed HitEffectColor on grass, wood, brick, glass, clay roof, and stone roof blocks
now only set 1 color for entities (instead of building array with all same values)
fixed an unneeded sqrt call in LightingSystem::setupLight
ifdefed out some Drox specific planet lighting (don't use)
ifdefed out models on world map (don't use)
ifdefed out shadow mapping support (don't use)
ifdefed out more of the blended tiles support (don't use)
ifdefed out Shader::buildBlendedTilesShader & Shader::buildRandomIconShader
now WorldBlock::getFirstTextureName uses const String& so less String construction which can be slow when building a ton of blocks
changed DatabaseEntry::getKeyValue, DatabaseEntry::getStringValue, and SimpleData::getDatabaseStringValue to const String& (should speed up some things, mostly startup)
changed DatabaseEntry::getIntValue and DatabaseEntry::getFloatValue to use const String& instead of local var (should speed up some things, mostly startup)
addKeyValue setBase now uses local emptyString instead of "" (less conversions for loading)
removed a couple unnecessary checks in Database::getDatabaseEntry
now convertCharacterStatNameToNum and convertDynamicCharacterStatNameToNum use hashes to be much quicker
now minimize reading normal and dynamic stats on magic modifiers (there are a lot of modifiers and a lot of stats)
now GameShared::getNpcChat uses hashes to speed up
changed SimpleData::getDatabaseEntryName to use const String&
sped up Database::getDatabaseEntry when looking for Base (now tries backwards in list a little)
now Quest::syncLevelAndSeed calculates what seed it needs (much quicker than old way)
fixed a potential memory leak in Game::createRandomQuest (not likely but better code)
made Game::createRandomQuest kill a quest earlier in the process if quest level too low
made it so quests that try to get shoved into a specific level that can't have them fail much quicker
now use cached tile for updating loose solids, liquids, and gases when building world
made settleAllLooseSolids, settleAllGases, and settleAllLiquids loop through tiles directly instead of calling getTile for each
sped up some faction stuff a little
changed PROTOCOL_VERSION to 149
Changed files in this update