hgkjfhfdsj
Active Member
- Reaction score
- 55
i have a few questions regarding the inner workings of 'method interfaces' when converted to jass.
original vjass
- whats the purpose kthis??
- when is the [ljass]//Generated method caller for i.onApply[/ljass] used (what is it equivalent to in vjass)
- when is the [ljass]//Generated method executor for i.onApply[/ljass] used (what is it equivalent to in vjass)
- why is sa__Data_onApply both the condition and action of the trigger?
thanks
original vjass
JASS:
interface i
method onApply takes unit u returns nothing
endinterface
struct Data extends i
method onApply takes unit u returns nothing
call UnitAddAbility(u, 039;A000039;)
endmethod
endstruct
JASS:
globals
// converted
//JASSHelper struct globals:
//cleaned the code up a little <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite1" alt=":)" title="Smile :)" loading="lazy" data-shortname=":)" />
constant integer si__i=1
integer topIndex=0
integer instanceCount=0
integer array recycle
integer array Type
trigger array onDestroy
trigger array onApply
constant integer si__Data=2
unit arg_unit1
integer arg_this
endglobals
//Generated method caller for i.onApply
function sc__i_onApply takes integer this,unit u returns nothing
set arg_this=this
set arg_unit1=u
call TriggerEvaluate(onApply[Type[this]])
endfunction
//Generated method executor for i.onApply
function sx__i_onApply takes integer this,unit u returns nothing
set arg_this=this
set arg_unit1=u
call TriggerExecute(onApply[Type[this]])
endfunction
//Generated destructor of i
function sc__i_deallocate takes integer this returns nothing
if this==null then
//null struct
return
elseif (recycle[this]!=-1) then
//double free
return
endif
set arg_this=this
call TriggerEvaluate(onDestroy[Type[this]])
set recycle[this]=topIndex
set topIndex=this
endfunction
//Generated method caller for Data.onApply
function sc__Data_onApply takes integer this,unit u returns nothing
call UnitAddAbility(u, 039;A000039;)
endfunction
//Generated allocator of Data
function s__Data__allocate takes nothing returns integer
local integer kthis
local integer this=topIndex
if (this!=0) then
set topIndex=recycle[this]
else
set instanceCount=instanceCount+1
set this=instanceCount
endif
if (this>8190) then
//exceed array limit
return 0
endif
set Type[this]=2
set kthis=this //<------
set recycle[this]=-1
return this
endfunction
//===========================================================================
// Trigger: Buff
//===========================================================================
function s__Data_onApply takes integer this,unit u returns nothing
call UnitAddAbility(u, 039;A000039;)
endfunction
//===========================================================================
function InitCustomTriggers takes nothing returns nothing
//Function not found: call InitTrig_Buff()
endfunction
//===========================================================================
function main takes nothing returns nothing
call ExecuteFunc("jasshelper__initstructs19849015")
endfunction
//Struct method generated initializers/callers:
function sa__Data_onApply takes nothing returns boolean
call s__Data_onApply(arg_this,arg_unit1)
return true
endfunction
function jasshelper__initstructs19849015 takes nothing returns nothing
set onApply[2]=CreateTrigger()
call TriggerAddCondition(onApply[2],Condition( function sa__Data_onApply))
call TriggerAddAction(onApply[2], function sa__Data_onApply)
set onDestroy[2]=null
endfunction
- whats the purpose kthis??
- when is the [ljass]//Generated method caller for i.onApply[/ljass] used (what is it equivalent to in vjass)
- when is the [ljass]//Generated method executor for i.onApply[/ljass] used (what is it equivalent to in vjass)
- why is sa__Data_onApply both the condition and action of the trigger?
thanks