mbbsemu / MBBSEmu

The MajorBBS Emulation Project is an Open Source, Cross-Platform emulator for easily running The MajorBBS & Worldgroup Modules
https://www.mbbsemu.com
MIT License
128 stars 14 forks source link

[ELWEP] Empire of the Peasants - Module crashes on listing "O"ther players #180

Closed tuday2 closed 3 years ago

tuday2 commented 3 years ago

Module Information

Describe the bug Module crashes on listing "O"ther players

To Reproduce Steps to reproduce the behavior:

  1. Load Empire of the Peasants Module
  2. Enter Module
  3. Select "O" option from main menu (Other Players)
  4. See error

Expected behavior Lists other players

Screenshots

Unhandled exception. System.Exception: Unsupported Btrieve Operation: GetLast
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.obtbtvl()
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.Invoke(UInt16 ordinal, Boolean offsetsOnly)
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.ExternalFunctionDelegate(UInt16 ordinal, UInt16 functionOrdinal)
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.Execute(IntPtr16 entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassState, Queue`1 initialStackValues, UInt16 initialStackPointer)
   at MBBSEmu.Module.MbbsModule.Execute(IntPtr16 entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassSetState, Queue`1 initialStackValues, UInt16 initialStackPointer)
   at MBBSEmu.HostProcess.MbbsHost.WorkerThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

EP

Software Information:

enusbaum commented 3 years ago

GetLast should set the BTV Position to that of the last record and set the BTV Record Data to the value of the record. obtbtvl should return 0 if there were zero records in the BTV file and the seek failed.

enusbaum commented 3 years ago

@paladine Assigning this to you -- verifying GetLast is implemented in the SQLite branch as to not implement it in the JSON implementation only to deprecate it.

tuday2 commented 3 years ago

v6 btrieve game, not designed for dos mbbs