BATTLEZONE
Version 1.5.2.2
Released 2013-03-02
Emergency Hotfix
This build is a quick fix for the multiplayer crash and savegame incompatibility in 1.5.2.1.
Downloads
Testing Executable and Symbols
What's New
Quick fix for problems with 1.5.2.1
- Fixed crash on starup in multiplayer
- Fixed incompatibility with older save games
AI Improvement
- Howitzers check the flight path of their projectiles to see if terrain gets in the way
Miscellaneous Improvements
- Use a better collision sound for CLASS_ID_STRUCTURE2 buildings (submitted by Dx)
- Various shell improvements (submitted by Dx)
- Return focus back to the MapList for host selection
- Updated Save/Load Shell
- Updated Pop Up Shell window buttons
- Properly redraw name edit box and save game description edit box
- Mission fixes
- Misn09Mission: CCA base turret setup is reliable (submitted by Dx)
- Misn08Mission: fixed CCA APC and second NSDF gun tower assignments
Editor Improvements
- Made the selected paths a bit easier to read in the editor. (submitted by Dx)
- Improved game object selection
- Uses the larger of bounding radius and collision radius
- These correspond to the circles drawn around objects
- Picks the object closest to the cursor
- Applies screen-space padding so small objects are easier to pick
- Enhanced Edit Object mode
- Show labels above objects that appear as an oriented box with circles
- Highlight the object under the mouse cursor (rollover)
- Reduced unintentional movement when clicking game objects
- Use the point clicked on the game object as a "handle" when moving it
- Holding the right mouse button makes the selected object face the cursor
- Placing a game object makes it the selected object so it's easy to rotate
- Enhanced Edit Path mode
- Show the path label over the first node (also with Show Paths)
- Reduced unintentional movement when clicking path nodes
- Use the point clicked on the path node as a "handle" when moving it
- Visual improvements
- Show menu item keys with sprites instead of [text]
- Show item keys only for currently-selectable items
- Show menu selection state using color
- Use translucent backgrounds for unselected labels
- This works in software rendering too!
Scripting Improvements
- Support getting team players
- Assign remote players to TEAM_SLOT_PLAYER
- Added GetPlayerHandle variant that takes a team
- Back-ported ScriptUtils from BZ2
- SetTeamNum
- DefaultAllies, Ally, UnAlly, IsTeamAllied, IsAlly
- GetCurHealth, SetCurHealth, GetMaxHealth, SetMaxHealth
- GetCurAmmo, SetCurAmmo, GetMaxAmmo, SetMaxAmmo, GetAmmo, AddAmmo
- GetWhoShotMe, GetLastEnemyShot, GetLastFriendShot
- GiveWeapon
- IsDeployed, Deploy
- IsSelected
- Additional ScriptUtils functionality
- Most functions taking a path name also take an optional point index
- Added path variants of GetNearestObject, GetNearestBuilding, and GetNearestEnemy
- Made HasCargo safe to use with non-Tug units
- Returns false in that case
Lua 5.1 Mission Scripting
- Preliminary implementation of LuaMission
- Framework for user-created mission scripts
- Reads the .lua script named after the mission (e.g. example.bzn reads example.lua)
- CAVEAT: script name is actually based on the msn_filename saved in the .bzn
- Supported script functions: Load, PostLoad, Save, AddObject, Update
- Mission file picks LuaMission:
- If its name starts with "lua"
- If it has a matching .lua script
- This only applies when creating the mission in the first place
- Basic Lua type serialization and deserialization
- Lua Load function receives whatever the Lua Save function returns
- Supports nil, boolean, lightuserdata (handles), string, and table
- Does not preserve complex reference structures like shared tables
- Breaks when confronted with cyclical reference structures
Network Improvements
- Improved DistributedObject bandwidth throttling
- Take reliable packets into account
- Take UDP packet header overhead (40 bytes) into account
AIP Improvements
- SetAIP takes a team number argument
- It defaults to 2 for backwards compatibility
- AIPs can control any team, not just team 2
- This has not been thoroughly tested yet...
- Controlling a player team will have unknown effects