kingkingyyk3
Visitor (Welcome to the Jungle, Baby!)
- Reaction score
- 216
JASS:
//////////////////////////////////////////
// Typecasting 2.0.1
// by kingking
//
// This library provides some type
// converting functions.
//
// ====================================
// Functions provided :
// ====================================
// Agent2Widget(agent) -> widget
// Agent2Group(agent) -> group
// Agent2Trigger(agent) -> trigger
// Agent2Timer(agent) -> timer
// Agent2Location(agent) -> location
// Agent2Effect(agent) -> effect
// Agent2Unit(agent) -> unit
// Agent2Item(agent) -> item
// Widget2Unit(widget) -> unit
// Widget2Destructable(widget) -> destructable
// Widget2Item(widget) -> item
//
// Due to the usage of CovertFogState in hashtable, I2X
// is available again.
//
// Int2Widget(integer) -> widget
// Int2Destructable(integer) -> destructable
// Int2Item(integer) -> item
// Int2Unit(integer) -> unit
// Int2Ability(integer) -> ability
// Int2Timer(integer) -> timer
// Int2Trigger(integer) -> trigger
// Int2TriggerCondition(integer) -> triggercondition
// Int2TriggerAction(integer) -> triggeraction
// Int2Force(integer) -> force
// Int2Group(integer) -> group
// Int2Location(integer) -> location
// Int2Rect(integer) -> rect
// Int2Sound(integer) -> sound
// Int2Effect(integer) -> effect
// Int2UnitPool(integer) -> unitpool
// Int2ItemPool(integer) -> itempool
// Int2Quest(integer) -> quest
// Int2QuestItem(integer) -> questitem
// Int2DefeatCondition(integer) -> defeatcondition
// Int2TimerDialog(integer) -> timerdialog
// Int2Leaderboard(integer) -> leaderboard
// Int2Multiboard(integer) -> multiboard
// Int2MultiboardItem(integer) -> multiboarditem
// Int2Trackable(integer) -> trackable
// Int2Dialog(integer) -> dialog
// Int2Button(integer) -> button
// Int2TextTag(integer) -> texttag
// Int2Ubersplat(integer) -> ubersplat
// Int2Region(integer) -> region
// Int2FogState(integer) -> fogstate
// Int2FogModifier(integer) -> fogmodifier
//
// Requirement :
// Wc3 1.24b or newer
// Jasshelper 0.A.2.9 or newer
///////////////////////////////////////
library Typecasting
globals
private hashtable Data = InitHashtable()
endglobals
//! textmacro Typecasting takes ParentName, parenttype, TypeName, type
function $ParentName$2$TypeName$ takes $parenttype$ object returns $type$
call Save$ParentName$Handle(Data,0,0,object)
return Load$TypeName$Handle(Data,0,0)
endfunction
//! endtextmacro
//! runtextmacro Typecasting ("Agent","agent","Widget","widget")
//! runtextmacro Typecasting ("Agent","agent","Group","group")
//! runtextmacro Typecasting ("Agent","agent","Trigger","trigger")
//! runtextmacro Typecasting ("Agent","agent","Timer","timer")
//! runtextmacro Typecasting ("Agent","agent","Location","location")
//! runtextmacro Typecasting ("Agent","agent","Effect","effect")
//! runtextmacro Typecasting ("Agent","agent","Unit","unit")
//! runtextmacro Typecasting ("Agent","agent","Item","item")
//! runtextmacro Typecasting ("Widget","widget","Unit","unit")
//! runtextmacro Typecasting ("Widget","widget","Destructable","destructable")
//! runtextmacro Typecasting ("Widget","widget","Item","item")
//! textmacro Typecasting_I2X takes TypeName, type
function Int2$TypeName$ takes integer id returns $type$
call SaveFogStateHandle(Data,0,0,ConvertFogState(id))
return Load$TypeName$Handle(Data,0,0)
endfunction
//! endtextmacro
//! runtextmacro Typecasting_I2X("Unit", "unit")
//! runtextmacro Typecasting_I2X("Effect", "effect")
//! runtextmacro Typecasting_I2X("Trigger", "trigger")
//! runtextmacro Typecasting_I2X("Timer", "timer")
//! runtextmacro Typecasting_I2X("Widget", "widget")
//! runtextmacro Typecasting_I2X("Group", "group")
//! runtextmacro Typecasting_I2X("Location", "location")
//! runtextmacro Typecasting_I2X("Item", "item")
//! runtextmacro Typecasting_I2X("Destructable", "destructable")
//! runtextmacro Typecasting_I2X("Ability", "ability")
//! runtextmacro Typecasting_I2X("TriggerCondition", "triggercondition")
//! runtextmacro Typecasting_I2X("TriggerAction", "triggeraction")
//! runtextmacro Typecasting_I2X("Force", "force")
//! runtextmacro Typecasting_I2X("Rect", "rect")
//! runtextmacro Typecasting_I2X("Sound", "sound")
//! runtextmacro Typecasting_I2X("UnitPool", "unitpool")
//! runtextmacro Typecasting_I2X("ItemPool", "itempool")
//! runtextmacro Typecasting_I2X("Quest", "quest")
//! runtextmacro Typecasting_I2X("QuestItem", "questitem")
//! runtextmacro Typecasting_I2X("DefeatCondition", "defeatcondition")
//! runtextmacro Typecasting_I2X("TimerDialog", "timerdialog")
//! runtextmacro Typecasting_I2X("Leaderboard", "leaderboard")
//! runtextmacro Typecasting_I2X("Multiboard", "multiboard")
//! runtextmacro Typecasting_I2X("MultiboardItem", "multiboarditem")
//! runtextmacro Typecasting_I2X("Trackable", "trackable")
//! runtextmacro Typecasting_I2X("Dialog", "dialog")
//! runtextmacro Typecasting_I2X("Button", "button")
//! runtextmacro Typecasting_I2X("TextTag", "texttag")
//! runtextmacro Typecasting_I2X("Image", "image")
//! runtextmacro Typecasting_I2X("Ubersplat", "ubersplat")
//! runtextmacro Typecasting_I2X("Region", "region")
//! runtextmacro Typecasting_I2X("FogState", "fogstate")
//! runtextmacro Typecasting_I2X("FogModifier", "fogmodifier")
endlibrary
Zinc version :
JASS:
//////////////////////////////////////////
// Typecasting(Zinc) 2.0.1
// by kingking
//
// This library provides some type
// converting functions.
//
// ====================================
// Functions provided :
// ====================================
// Agent2Widget(agent) -> widget
// Agent2Group(agent) -> group
// Agent2Trigger(agent) -> trigger
// Agent2Timer(agent) -> timer
// Agent2Location(agent) -> location
// Agent2Effect(agent) -> effect
// Agent2Unit(agent) -> unit
// Agent2Item(agent) -> item
// Widget2Unit(widget) -> unit
// Widget2Destructable(widget) -> destructable
// Widget2Item(widget) -> item
//
// Due to the usage of CovertFogState in hashtable, I2X
// is available again.
//
// Int2Widget(integer) -> widget
// Int2Destructable(integer) -> destructable
// Int2Item(integer) -> item
// Int2Unit(integer) -> unit
// Int2Ability(integer) -> ability
// Int2Timer(integer) -> timer
// Int2Trigger(integer) -> trigger
// Int2TriggerCondition(integer) -> triggercondition
// Int2TriggerAction(integer) -> triggeraction
// Int2Force(integer) -> force
// Int2Group(integer) -> group
// Int2Location(integer) -> location
// Int2Rect(integer) -> rect
// Int2Sound(integer) -> sound
// Int2Effect(integer) -> effect
// Int2UnitPool(integer) -> unitpool
// Int2ItemPool(integer) -> itempool
// Int2Quest(integer) -> quest
// Int2QuestItem(integer) -> questitem
// Int2DefeatCondition(integer) -> defeatcondition
// Int2TimerDialog(integer) -> timerdialog
// Int2Leaderboard(integer) -> leaderboard
// Int2Multiboard(integer) -> multiboard
// Int2MultiboardItem(integer) -> multiboarditem
// Int2Trackable(integer) -> trackable
// Int2Dialog(integer) -> dialog
// Int2Button(integer) -> button
// Int2TextTag(integer) -> texttag
// Int2Ubersplat(integer) -> ubersplat
// Int2Region(integer) -> region
// Int2FogState(integer) -> fogstate
// Int2FogModifier(integer) -> fogmodifier
//
// Requirement :
// Wc3 1.24b or newer
// Jasshelper 0.A.2.9 or newer
///////////////////////////////////////
//! zinc
library Typecasting
{
private hashtable Data = InitHashtable();
//! textmacro Typecasting takes ParentName, parenttype, TypeName, type
public function $ParentName$2$TypeName$ ($parenttype$ object) -> $type$
{
Save$ParentName$Handle(Data,0,0,object);
return Load$TypeName$Handle(Data,0,0);
}
//! endtextmacro
//! runtextmacro Typecasting ("Agent","agent","Widget","widget")
//! runtextmacro Typecasting ("Agent","agent","Group","group")
//! runtextmacro Typecasting ("Agent","agent","Trigger","trigger")
//! runtextmacro Typecasting ("Agent","agent","Timer","timer")
//! runtextmacro Typecasting ("Agent","agent","Location","location")
//! runtextmacro Typecasting ("Agent","agent","Effect","effect")
//! runtextmacro Typecasting ("Agent","agent","Unit","unit")
//! runtextmacro Typecasting ("Agent","agent","Item","item")
//! runtextmacro Typecasting ("Widget","widget","Unit","unit")
//! runtextmacro Typecasting ("Widget","widget","Destructable","destructable")
//! runtextmacro Typecasting ("Widget","widget","Item","item")
//! textmacro Typecasting_I2X takes TypeName, type
public function Int2$TypeName$ (integer id) -> $type$
{
SaveFogStateHandle(Data,0,0,ConvertFogState(id));
return Load$TypeName$Handle(Data,0,0);
}
//! endtextmacro
//! runtextmacro Typecasting_I2X("Unit", "unit")
//! runtextmacro Typecasting_I2X("Effect", "effect")
//! runtextmacro Typecasting_I2X("Trigger", "trigger")
//! runtextmacro Typecasting_I2X("Timer", "timer")
//! runtextmacro Typecasting_I2X("Widget", "widget")
//! runtextmacro Typecasting_I2X("Group", "group")
//! runtextmacro Typecasting_I2X("Location", "location")
//! runtextmacro Typecasting_I2X("Item", "item")
//! runtextmacro Typecasting_I2X("Destructable", "destructable")
//! runtextmacro Typecasting_I2X("Ability", "ability")
//! runtextmacro Typecasting_I2X("TriggerCondition", "triggercondition")
//! runtextmacro Typecasting_I2X("TriggerAction", "triggeraction")
//! runtextmacro Typecasting_I2X("Force", "force")
//! runtextmacro Typecasting_I2X("Rect", "rect")
//! runtextmacro Typecasting_I2X("Sound", "sound")
//! runtextmacro Typecasting_I2X("UnitPool", "unitpool")
//! runtextmacro Typecasting_I2X("ItemPool", "itempool")
//! runtextmacro Typecasting_I2X("Quest", "quest")
//! runtextmacro Typecasting_I2X("QuestItem", "questitem")
//! runtextmacro Typecasting_I2X("DefeatCondition", "defeatcondition")
//! runtextmacro Typecasting_I2X("TimerDialog", "timerdialog")
//! runtextmacro Typecasting_I2X("Leaderboard", "leaderboard")
//! runtextmacro Typecasting_I2X("Multiboard", "multiboard")
//! runtextmacro Typecasting_I2X("MultiboardItem", "multiboarditem")
//! runtextmacro Typecasting_I2X("Trackable", "trackable")
//! runtextmacro Typecasting_I2X("Dialog", "dialog")
//! runtextmacro Typecasting_I2X("Button", "button")
//! runtextmacro Typecasting_I2X("TextTag", "texttag")
//! runtextmacro Typecasting_I2X("Image", "image")
//! runtextmacro Typecasting_I2X("Ubersplat", "ubersplat")
//! runtextmacro Typecasting_I2X("Region", "region")
//! runtextmacro Typecasting_I2X("FogState", "fogstate")
//! runtextmacro Typecasting_I2X("FogModifier", "fogmodifier")
}
//! endzinc