[Bug 39643] New: DM Genie 2.x fails on startup with 'Automation error. ... Check the Scripting function Skill Bonus'

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Nov 22 05:32:51 CST 2015


https://bugs.winehq.org/show_bug.cgi?id=39643

            Bug ID: 39643
           Summary: DM Genie 2.x fails on startup with 'Automation error.
                    ... Check the Scripting function Skill Bonus'
           Product: Wine
           Version: 1.8-rc1
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: vbscript
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

continuation of bug 9095

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/DM Genie

$ WINEDEBUG=+tid,+seh,+loaddll,+process,+vbscript,+ole,+variant wine
./DMGenie.exe >>log.txt 2>&1
...
0027:trace:ole:SysAllocStringLen L"executing the general script 'SkillBonus'"
0027:trace:ole:ITypeInfo_fnAddRef (0x23bda60)->ref is 2
0027:trace:ole:SetErrorInfo (0, (nil))
0027:trace:ole:ITypeInfo_fnInvoke
(0x23bda60)(0x23acaf8,id=2000,flags=0x00000001,0x33c814,(nil),0x33c7f4,0x33c824)
0027:trace:ole:dump_DispParms args=1 named args=0
0027:trace:ole:dump_DispParms args:
0027:trace:ole:dump_DispParms   [0] 0x33c858 {VT_BSTR: L"Public Sub
SkillBonus(FinalCheck)\r\nn = func.GetSkillNum(\"SWIM\")\r\nif n > 0 then\r\n  
 cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck\r\nend if\r\n\r\n'if
cRace.PCRace the
0027:trace:ole:ITypeInfo_fnInvoke invoking:
L"AddCode"(1)
    parm0: L"Code"
memid is 000007d0
Param 0:
        tdesc.vartype 8 (VT_BSTR)
        u.paramdesc.wParamFlags PARAMFLAG_FIN
        u.paramdesc.lpex (nil)
    funckind: 1 (pure virtual)
    invkind: 1 (func)
    callconv: 4 (stdcall)
    oVft: 104
    cParamsOpt: 0
    wFlags: 0
    elemdescFunc (return value type):
        tdesc.vartype 25 (VT_HRESULT)
        u.paramdesc.wParamFlags PARAMFLAGS_NONE
        u.paramdesc.lpex (nil)
    helpstring: L"Add code to the global module"
    entry: (null)
0027:trace:ole:ITypeInfo_fnInvoke changing args
0027:trace:ole:ITypeInfo_fnInvoke 0x33c858 {VT_BSTR: L"Public Sub
SkillBonus(FinalCheck)\r\nn = func.GetSkillNum(\"SWIM\")\r\nif n > 0 then\r\n  
 cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck\r\nend if\r\n\r\n'if
cRace.PCRace the
0027:trace:ole:DispCallFunc (0x23acaf8, 104, 4, 10, 1, 0x4f18264, 0x4f18260,
0x33c480 (vt=10))
0027:trace:ole:DispCallFunc arg 0: type VT_BSTR 0x33c858 {VT_BSTR: L"Public Sub
SkillBonus(FinalCheck)\r\nn = func.GetSkillNum(\"SWIM\")\r\nif n > 0 then\r\n  
 cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck\r\nend if\r\n\r\n'if
cRace.PCRace the
0027:trace:vbscript:VBScript_SetScriptState (0x23acbe0)->(1)
0027:trace:vbscript:VBScriptParse_ParseScriptText (0x23acbe0)->(L"Public Sub
SkillBonus(FinalCheck)\r\nn = func.GetSkillNum(\"SWIM\")\r\nif n > 0 then\r\n  
 cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck\r\nend if\r\n\r\n'if
cRace.PCRace then\r\n'n = func.GetSkillNum(\"JUMP\")\r\n'if n > 0 then\r\n'   
sp = cr.Speed\r\n'    modifier_to_jump = 0\r\n'    if sp <= "... (null) (nil)
(null) 0 1 2 (nil) 0x33c2fc)
0027:trace:ole:SysAllocStringLen L"func"
0027:trace:ole:SysAllocStringLen L"GetSkillNum"
0027:trace:ole:SysAllocStringLen L"n"
0027:trace:ole:SysAllocStringLen L"n"
0027:warn:vbscript:compile_call_statement converting call expr to assign expr
0027:trace:ole:SysAllocStringLen L"cr"
0027:trace:ole:SysAllocStringLen L"n"
0027:trace:ole:SysAllocStringLen L"cr"
0027:trace:ole:SysAllocStringLen L"SkillTotal"
0027:trace:ole:SysAllocStringLen L"FinalCheck"
0027:trace:ole:SysAllocStringLen L"n"
0027:trace:ole:SysAllocStringLen L"SkillTotal"
0027:fixme:vbscript:check_script_collisions L"SkillBonus": redefined
0027:trace:ole:DispCallFunc retval: 0x33c480 {VT_ERROR: 80004005}
0027:trace:variant:VariantClear (0x4f18240 {VT_EMPTY})
0027:trace:variant:VariantClear (0x4f18250 {VT_EMPTY})
0027:warn:ole:ITypeInfo_fnInvoke invoked function failed with error 0x80004005
0027:trace:ole:GetErrorInfo (0, 0x33c440, (nil))
0027:trace:ole:ITypeInfo_fnInvoke -- 0x80020009
0027:trace:ole:ITypeInfo_fnRelease (0x23bda60)->(1)
0027:trace:seh:raise_exception code=c000008f flags=1 addr=0x7b8461c9
ip=7b8461c9 tid=0027
0027:trace:seh:raise_exception  info[0]=deadcafe
0027:trace:seh:raise_exception  info[1]=deadcafe
0027:trace:seh:raise_exception  eax=7b832d3d ebx=00134230 ecx=00000008
edx=0033c704 esi=0033c814 edi=0033c814
0027:trace:seh:raise_exception  ebp=0033c748 esp=0033c6e4 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00000202
0027:trace:seh:call_stack_handlers calling handler at 0x4419a6 code=c000008f
flags=1 
...
0027:trace:variant:VarBstrCat L"Error -2147467259: 'Automation
error'.\r\nRaised while calculating all skill bonuses. Check the Scripting
function Skill Bonus.\r\n\r\nPress Ignore to continue.\r\nIf you press Abort,
the program will end and you will lose any unsaved data.\r\nIf this error
occurs again, try reinstalling DM Genie.\r\n" 
--- snip ---

Corresponding VBScript code, extracted from:

--- snip ---
$ readlink -f Script.dmscr 
/home/focht/.wine/drive_c/Program Files/DM Genie/CoreRules/Data/Script.dmscr
--- snip ---

--- snip ---
##### START SCRIPTFUNC #####
 2 
 26 
 350 
 0 
 3 
SkillBonus


False
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
#####START#####
{\rtf1\ansi\ansicpg1252\deff0{\fonttbl{\f0\fnil\fcharset0 MS Sans Serif;}}
\viewkind4\uc1\pard\lang3084\f0\fs17 This function is called \b before \b0
calculating the total skill bonuses for all skills, through the normal
calculation. Do NOT modifiy cr.SkillTemp- only cr.SkillTotal.
\par 
\par \b FinalCheck\b0  is the total armor check penalty (and is <= 0).
\par 
\par Notably, this function doubles the armor check penalty for Swim.
Adjustment for Jump for the current speed can also be performed - uncomment the
code and check the Get Race box.
\par 
\par \b This code is called very frequently. Limit the amount of code here.\b0 
\par }

#####END#####
#####START#####
Public Sub SkillBonus(FinalCheck)
n = func.GetSkillNum("SWIM")
if n > 0 then
    cr.SkillTotal(n) = cr.SkillTotal(n) + FinalCheck
end if

'if cRace.PCRace then
'n = func.GetSkillNum("JUMP")
'if n > 0 then
'    sp = cr.Speed
'    modifier_to_jump = 0
'    if sp <= 20 then
'        modifier_to_jump = int((30-sp)/10) * -6
'    elseif sp >= 40 then
'        modifier_to_jump = int((sp-30)/10) * +4
'    end if
'    cr.SkillTotal(n) = cr.SkillTotal(n) + modifier_to_jump
'end if
'end if

End Sub

#####END#####
##### END SCRIPTFUNC #####
--- snip ---

$ sha1sum DMGenie_Setup.exe 
a637a4e98fa09b9311f8cd78be6c9e7ff8bdbd2e  DMGenie_Setup.exe

$ du -sh DMGenie_Setup.exe 
8.0M    DMGenie_Setup.exe

$ wine --version
wine-1.8-rc1

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list