Difference between revisions of "Running Bug List"

From Bitfighter
(General Bugs)
(General Bugs)
Line 13: Line 13:
 
# One black screen of doom case left:  Open two clients; don't move in one to let spawn delay kick in (30 seconds); go to a /next level, the first should now be spawn delayed; go to /next level again, the first cannot come back to game now
 
# One black screen of doom case left:  Open two clients; don't move in one to let spawn delay kick in (30 seconds); go to a /next level, the first should now be spawn delayed; go to /next level again, the first cannot come back to game now
 
# Fix memory leak with robots/levelgen because of disabling every luaW_hold<T>(L, obj); --> use reference counting to delete proxy when appropriate, and reenable this line
 
# Fix memory leak with robots/levelgen because of disabling every luaW_hold<T>(L, obj); --> use reference counting to delete proxy when appropriate, and reenable this line
# <del>When a script deletes a ff projector, bobdaduck reports the ff is not also removed.  Also problematic:  setTeams, setLoc, etc.  Basically anything with FFPs don't appropriately update the attached FF</del>
 
# <del>/shuffle is broken...</del>
 
 
# Disable fast regen when standing still trying to build something with engineer
 
# Disable fast regen when standing still trying to build something with engineer
# <del>Ship is rendered behind repair items?</del>
 
 
# Public Lua API members for the 'Item' object should probably be moved somewhere more appropriate.  See http://bitfighter.org/luadocs/class_item.html  isOnShip() should not apply to EngineeredItem, etc.
 
# Public Lua API members for the 'Item' object should probably be moved somewhere more appropriate.  See http://bitfighter.org/luadocs/class_item.html  isOnShip() should not apply to EngineeredItem, etc.
 
# Clean-up master chat commands.  Add consistency; /raptor -> /pm raptor  etc.
 
# Clean-up master chat commands.  Add consistency; /raptor -> /pm raptor  etc.
# <del>Lua API setHealth on Turrets/FFs not working</del>
 
# <del>health items set at no regen still regen at default rate</del>
 
# Quartz' kaen test euthanasia:
 
#* <del>Ghost ship hitting an energy item</del>
 
#* <del>Set teleporter entrance == exit; set Delay=0  (should we remove this?)</del>
 
#* <del>ghost (neutral) ship touching a levelgen'd zone (goalzone did the job)</del>
 
 
# Lua API doc fixes:  
 
# Lua API doc fixes:  
 
#* event method signatures are not documented
 
#* event method signatures are not documented
Line 32: Line 23:
 
# Bobdaduck's Lua API crashes:
 
# Bobdaduck's Lua API crashes:
 
#* create and delete a spybug each tick, then shoot the spybug.  crash!
 
#* create and delete a spybug each tick, then shoot the spybug.  crash!
# <del>Client-side crash sometimes when another ship moves into a slipzone.  Looks like a memory corruption:  http://pastie.org/7056652</del>
 
 
# Client-side crash dying with commander's map open:  http://pastie.org/7063833
 
# Client-side crash dying with commander's map open:  http://pastie.org/7063833
 
# If ship spawns in a zone, it should trigger the onShipEnteredZone event (bobdaduck reports it does not)
 
# If ship spawns in a zone, it should trigger the onShipEnteredZone event (bobdaduck reports it does not)
Line 40: Line 30:
 
# <del>FF/Turret snapping in the editor needs serious work.  See http://pastie.org/pastes/7303300/text for a simple example (load in 'host-game' first to see what it should look like).  Also rotation of things in the editor messes up snapping as well.</del>
 
# <del>FF/Turret snapping in the editor needs serious work.  See http://pastie.org/pastes/7303300/text for a simple example (load in 'host-game' first to see what it should look like).  Also rotation of things in the editor messes up snapping as well.</del>
 
#* The test behaves as the code intends. It's more of a bug that you can put FFs there in the first place. Maybe we should add an INI option to disable engineered item resnapping when loading in the editor.
 
#* The test behaves as the code intends. It's more of a bug that you can put FFs there in the first place. Maybe we should add an INI option to disable engineered item resnapping when loading in the editor.
 +
#* What about arbitrarily moving/rotating/resizing?
 
# Make INI option 'GlobalLevelScript' take multiple scripts.  Probably just use comma-delimited list like so:  GlobalLevelScript=logger,adminutils,killraptor
 
# Make INI option 'GlobalLevelScript' take multiple scripts.  Probably just use comma-delimited list like so:  GlobalLevelScript=logger,adminutils,killraptor
 
# Remove access to dangerous Lua libraries (esp. os and io)  See http://lua-users.org/wiki/SandBoxes for ideas.
 
# Remove access to dangerous Lua libraries (esp. os and io)  See http://lua-users.org/wiki/SandBoxes for ideas.
Line 48: Line 39:
 
# Sneaking suspicion that if one client is spawnDelayed, the server is delayed too
 
# Sneaking suspicion that if one client is spawnDelayed, the server is delayed too
 
# missing levelgen:findObjects() method to search for in-game objects of whatever type
 
# missing levelgen:findObjects() method to search for in-game objects of whatever type
 +
# Font Textures lost when change to/from fullscreen
 +
# New sliding loadout indicator acts oddly:  when hosting a game, it'll slide if *another* player enters a loadout zone
  
 
====Things to test after next lua rewrite====
 
====Things to test after next lua rewrite====
 
# Levelgen: Having addItem() in main() may randomly fail on repeated ctrl+R in editor or repeated level restart, showing message "***LEVELGEN ERROR*** Error encountered while attempting to run script's main() function: ***.levelgen:44: attempt to call missing or unknown method 'addItem' (a nil value).  Aborting script."
 
# Levelgen: Having addItem() in main() may randomly fail on repeated ctrl+R in editor or repeated level restart, showing message "***LEVELGEN ERROR*** Error encountered while attempting to run script's main() function: ***.levelgen:44: attempt to call missing or unknown method 'addItem' (a nil value).  Aborting script."
 
#:<code>-- for bug #33 from sam686<br>function main()<br>&nbsp; for x = 0, 20 do<br>&nbsp; &nbsp; for y = 0, 20 do<br>&nbsp; &nbsp; &nbsp; item2 = ResourceItem.new()<br>&nbsp; &nbsp; &nbsp;  item2:setGeom(x * 100, y * 100)<br>&nbsp; &nbsp; &nbsp; levelgen:addItem(item2)<br>&nbsp; &nbsp; &nbsp; textitem = TextItem.new()<br>&nbsp; &nbsp; &nbsp; textitem:setText(x .. "," .. y)<br>&nbsp; &nbsp; &nbsp; textitem:setGeom(x * 100, y * 100, x * 100 + 100, y * 100)<br>&nbsp; &nbsp; &nbsp; levelgen:addItem(textitem)<br>&nbsp; &nbsp; end<br>&nbsp; end<br>end</code>
 
#:<code>-- for bug #33 from sam686<br>function main()<br>&nbsp; for x = 0, 20 do<br>&nbsp; &nbsp; for y = 0, 20 do<br>&nbsp; &nbsp; &nbsp; item2 = ResourceItem.new()<br>&nbsp; &nbsp; &nbsp;  item2:setGeom(x * 100, y * 100)<br>&nbsp; &nbsp; &nbsp; levelgen:addItem(item2)<br>&nbsp; &nbsp; &nbsp; textitem = TextItem.new()<br>&nbsp; &nbsp; &nbsp; textitem:setText(x .. "," .. y)<br>&nbsp; &nbsp; &nbsp; textitem:setGeom(x * 100, y * 100, x * 100 + 100, y * 100)<br>&nbsp; &nbsp; &nbsp; levelgen:addItem(textitem)<br>&nbsp; &nbsp; end<br>&nbsp; end<br>end</code>

Revision as of 19:01, 9 April 2013

This is list of our current high-priority bugs for Bitfighter.

Not all issues belong on this list -- only those that are a high priority for the next release. Other cases should be added to the Google Code bug tracker.

General Bugs

  1. Joining a game already running won't show your badges in the scoreboard until next level. Existing clients get info on the joiner, but joiner doesn't get the full 411 on the existing players. GameType::serverAddClient::s2cAddClient isn't sending proper badge info to joiner.
  2. Fix (or kill) /suspend command. Removed client-side by raptor Do we need to remove the server ability to suspend client?
  3. Figure out how to get ids working properly with walls/polywalls
  4. When teleporting on top of walls (layered walls?) sometimes a player gets stuck and cannot move or commit suicide. This may be hard to track down.
  5. One black screen of doom case left: Open two clients; don't move in one to let spawn delay kick in (30 seconds); go to a /next level, the first should now be spawn delayed; go to /next level again, the first cannot come back to game now
  6. Fix memory leak with robots/levelgen because of disabling every luaW_hold<T>(L, obj); --> use reference counting to delete proxy when appropriate, and reenable this line
  7. Disable fast regen when standing still trying to build something with engineer
  8. Public Lua API members for the 'Item' object should probably be moved somewhere more appropriate. See http://bitfighter.org/luadocs/class_item.html isOnShip() should not apply to EngineeredItem, etc.
  9. Clean-up master chat commands. Add consistency; /raptor -> /pm raptor etc.
  10. Lua API doc fixes:
  11. Lua event onShipSpawned isn't triggered when starting a level already connected to a server. the 'suppressEvents' part of EventManager::fireEvent(EventType eventType, Ship *ship) [EventManager.cpp:292] returns true in this case for some reason
  12. Bobdaduck's Lua API crashes:
    • create and delete a spybug each tick, then shoot the spybug. crash!
  13. Client-side crash dying with commander's map open: http://pastie.org/7063833
  14. If ship spawns in a zone, it should trigger the onShipEnteredZone event (bobdaduck reports it does not)
  15. Improve screen for loading levels in editor -- perhaps general keyword search, or options for picking by author/title/file, or perhaps navigating a folder tree
  16. Graphically indicate if turrets/FFPs are regenerative. bobdaduck suggests filling in the semicircle and triangle (turrent and FFP respectively)
  17. /addbots 6, crash! Due to this revision?: https://code.google.com/p/bitfighter/source/detail?r=d68cf36095763f5d9c928f7d03cb98ff2265fa41
  18. FF/Turret snapping in the editor needs serious work. See http://pastie.org/pastes/7303300/text for a simple example (load in 'host-game' first to see what it should look like). Also rotation of things in the editor messes up snapping as well.
    • The test behaves as the code intends. It's more of a bug that you can put FFs there in the first place. Maybe we should add an INI option to disable engineered item resnapping when loading in the editor.
    • What about arbitrarily moving/rotating/resizing?
  19. Make INI option 'GlobalLevelScript' take multiple scripts. Probably just use comma-delimited list like so: GlobalLevelScript=logger,adminutils,killraptor
  20. Remove access to dangerous Lua libraries (esp. os and io) See http://lua-users.org/wiki/SandBoxes for ideas.
  21. If an editor plugin crashes (in Lua) the game will crash with a segfault. Should be resilient.
  22. Move Lua loadout changes to Ship, from Robot
  23. Editor plugins need to use the new API (via addItem, etc.) instead of :addLevelLine()
  24. Bot balancing bug: 3 people join on two teams, balance to 6 players. then all humans go on the same team. Result: bots's don't rebalance and you're left with 4 on 2.
  25. Sneaking suspicion that if one client is spawnDelayed, the server is delayed too
  26. missing levelgen:findObjects() method to search for in-game objects of whatever type
  27. Font Textures lost when change to/from fullscreen
  28. New sliding loadout indicator acts oddly: when hosting a game, it'll slide if *another* player enters a loadout zone

Things to test after next lua rewrite

  1. Levelgen: Having addItem() in main() may randomly fail on repeated ctrl+R in editor or repeated level restart, showing message "***LEVELGEN ERROR*** Error encountered while attempting to run script's main() function: ***.levelgen:44: attempt to call missing or unknown method 'addItem' (a nil value). Aborting script."
    -- for bug #33 from sam686
    function main()
      for x = 0, 20 do
        for y = 0, 20 do
          item2 = ResourceItem.new()
          item2:setGeom(x * 100, y * 100)
          levelgen:addItem(item2)
          textitem = TextItem.new()
          textitem:setText(x .. "," .. y)
          textitem:setGeom(x * 100, y * 100, x * 100 + 100, y * 100)
          levelgen:addItem(textitem)
        end
      end
    end