Fool
Junior Member
Posts: 58
|
Post by Fool on Apr 22, 2016 19:09:37 GMT
Most of the code from what I can see is understandable. How hard was it to recompile? And if you removed SFML, and DirectX, whats it using for rendering?
|
|
|
Post by zaimoni on Apr 22, 2016 20:34:55 GMT
It's using the Windows GDI functions that have been present since Win95, in the operating system core. The current build has no sound.
The decompiler was selected because it was both monetarily free, and it advertised being able to create a Microsoft Visual Studio project as part of the decompiling process. So it quite literally was just "decompile, open in Visual Studio, recompile".
The decompiler targeted an earlier version of Visual Studio; this is what triggered the one-way upgrade warning, twelve syntax errors from a redefinition of the ^ operator, and a number of errors from unnecessary raw pointer manipulations that were also mechanical fixes.
|
|
|
Post by zaimoni on Apr 24, 2016 5:13:24 GMT
Time to do a release; the next set of planned changes is very invasive.
ALPHA FORK RC1 CHANGES ------------------
Recharging: nothing takes more than 8 turns to recharge. If it has really long life (cell phones, small flashlights) it's efficient. Short life items are not penalized.
Line of fire/line of sight display stops at the blocked point, not the target. This is a side effect of changing the line of fire/line of sight to intelligently swerve to avoid being blocked.
Giving items no longer merges against ground inventory.
The civilian and gang AIs have had some micro-optimizations regarding flashlight usage and related situations.
Trading is in the middle of a rewrite. Further changes require very invasive restructuring so they haven't been attempted.
The alpha 9 savefile viewer should work as-is with alpha 9 fork RC1.
|
|
Fool
Junior Member
Posts: 58
|
Post by Fool on Apr 24, 2016 18:23:27 GMT
Protip for the guests, the 'binary only' means it doesn't include the game resources.
Also, sleeping causes the game to crash with this bug.. (something about maxstep < 1)
See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text ************** System.ArgumentOutOfRangeException: 0 Parameter name: 0 < maxSteps at djack.RogueSurvivor.Engine.LOS.AngbandlikeTrace(Int32 maxSteps, Int32 xFrom, Int32 yFrom, Int32 xTo, Int32 yTo, Func`3 fn, List`1 line) at djack.RogueSurvivor.Engine.LOS.FOVSub(Location fromLocation, Point toPosition, Int32 maxRange, HashSet`1& visibleSet) at djack.RogueSurvivor.Engine.LOS.ComputeFOVFor(Rules rules, Actor actor, WorldTime time, Weather weather) at djack.RogueSurvivor.Engine.RogueGame.UpdatePlayerFOV(Actor player) at djack.RogueSurvivor.Engine.RogueGame.HandlePlayerActor(Actor player) at djack.RogueSurvivor.Engine.RogueGame.AdvancePlay(Map map, SimFlags sim) at djack.RogueSurvivor.Engine.RogueGame.AdvancePlay(District district, SimFlags sim) at djack.RogueSurvivor.Engine.RogueGame.GameLoop() at djack.RogueSurvivor.Engine.RogueGame.Run() at djack.RogueSurvivor.RogueForm.OnShown(EventArgs e) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
************** Loaded Assemblies ************** mscorlib Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8689 (QFE.050727-8600) CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll ---------------------------------------- RogueSurvivor Assembly Version: 0.9.1.0 Win32 Version: 0.9.1.0 CodeBase: file:///C:/Users/Asus/Downloads/RSrevive.RC1/RogueSurvivor.exe ---------------------------------------- System.Windows.Forms Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8670 (QFE.050727-8600) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8686 (QFE.050727-8600) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8681 (QFE.050727-8600) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Core Assembly Version: 3.5.0.0 Win32 Version: 3.5.30729.8693 built by: QFE CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Configuration Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8670 (QFE.050727-8600) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Xml Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.8679 (QFE.050727-8600) CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll ----------------------------------------
************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled.
For example:
<configuration> <system.windows.forms jitDebugging="true" /> </configuration>
When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
|
|
|
Post by zaimoni on Apr 24, 2016 20:34:42 GMT
Acknowledged; that's going to need a fairly fast bugfix release.
|
|
|
Post by zaimoni on Apr 24, 2016 20:58:51 GMT
RC 2 is out; I've pulled the RC 1 as known-bad.
|
|
Fool
Junior Member
Posts: 58
|
Post by Fool on Apr 24, 2016 22:16:24 GMT
Sleeping is fixed. You're fast, thanks, but while I was testing to see if the fix worked on my system I accidentally walked into an npc, and it crashed on trade.
************** Exception Text ************** System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: Trading with a player is unimplemented at djack.RogueSurvivor.Engine.RogueGame.DoTrade(Actor speaker, Actor target) at djack.RogueSurvivor.Engine.RogueGame.DoChat(Actor speaker, Actor target) at djack.RogueSurvivor.Engine.Actions.ActionChat.Perform() at djack.RogueSurvivor.Engine.Actions.ActionBump.Perform() at djack.RogueSurvivor.Engine.RogueGame.DoPlayerBump(Actor player, Direction direction) at djack.RogueSurvivor.Engine.RogueGame.HandlePlayerActor(Actor player) at djack.RogueSurvivor.Engine.RogueGame.AdvancePlay(Map map, SimFlags sim) at djack.RogueSurvivor.Engine.RogueGame.AdvancePlay(District district, SimFlags sim) at djack.RogueSurvivor.Engine.RogueGame.GameLoop() at djack.RogueSurvivor.Engine.RogueGame.Run() at djack.RogueSurvivor.RogueForm.OnShown(EventArgs e) at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme) at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
|
|
|
Post by zaimoni on Apr 24, 2016 22:39:23 GMT
*Sigh* ... systematic error. RC 3 uploaded, but I expect to fix the systematic error before final release.
I wouldn't have found these two bugs quickly even if I had delayed the release to test locally.
|
|
Fool
Junior Member
Posts: 58
|
Post by Fool on Apr 24, 2016 22:48:36 GMT
What systematic error, and is it fixed in rc3?
|
|
|
Post by zaimoni on Apr 24, 2016 23:14:06 GMT
The systematic error, is that all of the action-implementing functions should use their guard-clause functions as argument checkers in DEBUG mode (which is how these are being released). Each of the AI action classes documents the guard clause to be used for its action.
It is not fixed in RC3 because I responded too fast; however, it should not materially affect things (the trading function was the only one where I had to explicitly think about guard clauses so far).
EDIT No, not safe to fix before final release. There is at least one case where one action recurses to another, but the legality checks are different for the two actions. The trading one had to be dealt with because the original error test was "too deep" (was in code I was rewriting).
|
|
|
Post by zaimoni on Apr 25, 2016 7:45:01 GMT
RC 4 out... actually had time to playtest after getting off work. Trading verified to not crash (turned out there were three different failure points, RC 3 only got one)
|
|
|
Post by zaimoni on Apr 25, 2016 8:41:43 GMT
Looks like the flashlight/tracker recharging change was botched. I'll wait and see if there are other problems before doing an RC 5.
|
|
|
Post by zaimoni on Apr 26, 2016 5:10:53 GMT
RC 5 out, to make flashlight/tracker recharging work as advertised in RC 1. If there are no easy-to-fix problems reported within the next week or so, this will become a proper release.
Savefiles should be 100% compatible between RC 4 and RC 5.
|
|
Fool
Junior Member
Posts: 58
|
Post by Fool on Apr 27, 2016 19:21:47 GMT
Haven't had time to play due to work but just wanted to say keep up the good work Zaimoni. You're really something.
|
|
|
Post by zaimoni on Apr 28, 2016 4:48:59 GMT
Thanks. If I don't get any truly broken reports (as opposed to cosmetic issues) by May 2nd (the 7-day point for RC 5), I'll feel free to do save format breaking changes and indulge in more radical restructuring. [Trading failure messages are known misleading. but generally it's failing when it should fail.]
Strangely, the decompiled alpha 9 *did* have special crosschecks to try to keep cops from trading away their weapons and ammo. It just didn't work, and ended up being replaced when the concept of "tradeable item" went in.
I am not looking forward to deciphering the multi-threading in Rogue Survivor. [Yes, there is a thread specifically for simulating destricts the player isn't in. That whole section is up for re-implementation as I think effects related to that code are why I have a number of games that crash on entering a new district.]
|
|