#define hom(type, m) m(type) if (ty < 50) then if (ty < 25) then if (ty < 13) then if (ty < 7) then if (ty < 4) then if (ty < 2) then call hom (handle,macro) else if (ty < 3) then call hom (agent,macro) else call hom (event,macro) endif endif else if (ty < 5) then call hom (player,macro) else if (ty < 6) then call hom (widget,macro) else call hom (unit,macro) endif endif endif else if (ty < 10) then if (ty < 8) then call hom (destructable,macro) else if (ty < 9) then call hom (item,macro) else call hom (ability,macro) endif endif else if (ty < 11) then call hom (buff,macro) else if (ty < 12) then call hom (force,macro) else call hom (group,macro) endif endif endif endif else if (ty < 19) then if (ty < 16) then if (ty < 14) then call hom (trigger,macro) else if (ty < 15) then call hom (triggercondition,macro) else call hom (timer,macro) endif endif else if (ty < 17) then call hom (location,macro) else if (ty < 18) then call hom (region,macro) else call hom (rect,macro) endif endif endif else if (ty < 22) then if (ty < 20) then call hom (boolexpr,macro) else if (ty < 21) then call hom (conditionfunc,macro) else call hom (filterfunc,macro) endif endif else if (ty < 23) then call hom (sound,macro) else if (ty < 24) then call hom (effect,macro) else call hom (fogmodifier,macro) endif endif endif endif endif else if (ty < 37) then if (ty < 31) then if (ty < 28) then if (ty < 26) then call hom (dialog,macro) else if (ty < 27) then call hom (button,macro) else call hom (quest,macro) endif endif else if (ty < 29) then call hom (questitem,macro) else if (ty < 30) then call hom (defeatcondition,macro) else call hom (timerdialog,macro) endif endif endif else if (ty < 34) then if (ty < 32) then call hom (leaderboard,macro) else if (ty < 33) then call hom (multiboard,macro) else call hom (multiboarditem,macro) endif endif else if (ty < 35) then call hom (trackable,macro) else if (ty < 36) then call hom (gamecache,macro) else call hom (hashtable,macro) endif endif endif endif else if (ty < 43) then if (ty < 40) then if (ty < 38) then call hom (triggeraction,macro) else if (ty < 39) then call hom (unitpool,macro) else call hom (itempool,macro) endif endif else if (ty < 41) then call hom (race,macro) else if (ty < 42) then call hom (alliancetype,macro) else call hom (racepreference,macro) endif endif endif else if (ty < 46) then if (ty < 44) then call hom (gamestate,macro) else if (ty < 45) then call hom (igamestate,macro) else call hom (fgamestate,macro) endif endif else if (ty < 48) then if (ty < 47) then call hom (playerstate,macro) else call hom (playerscore,macro) endif else if (ty < 49) then call hom (playergameresult,macro) else call hom (unitstate,macro) endif endif endif endif endif endif else if (ty < 75) then if (ty < 62) then if (ty < 56) then if (ty < 53) then if (ty < 51) then call hom (aidifficulty,macro) else if (ty < 52) then call hom (eventid,macro) else call hom (gameevent,macro) endif endif else if (ty < 54) then call hom (playerevent,macro) else if (ty < 55) then call hom (playerunitevent,macro) else call hom (unitevent,macro) endif endif endif else if (ty < 59) then if (ty < 57) then call hom (limitop,macro) else if (ty < 58) then call hom (widgetevent,macro) else call hom (dialogevent,macro) endif endif else if (ty < 60) then call hom (unittype,macro) else if (ty < 61) then call hom (gamespeed,macro) else call hom (gamedifficulty,macro) endif endif endif endif else if (ty < 68) then if (ty < 65) then if (ty < 63) then call hom (gametype,macro) else if (ty < 64) then call hom (mapflag,macro) else call hom (mapvisibility,macro) endif endif else if (ty < 66) then call hom (mapsetting,macro) else if (ty < 67) then call hom (mapdensity,macro) else call hom (mapcontrol,macro) endif endif endif else if (ty < 71) then if (ty < 69) then call hom (playerslotstate,macro) else if (ty < 70) then call hom (volumegroup,macro) else call hom (camerafield,macro) endif endif else if (ty < 73) then if (ty < 72) then call hom (camerasetup,macro) else call hom (playercolor,macro) endif else if (ty < 74) then call hom (placement,macro) else call hom (startlocprio,macro) endif endif endif endif endif else if (ty < 87) then if (ty < 81) then if (ty < 78) then if (ty < 76) then call hom (raritycontrol,macro) else if (ty < 77) then call hom (blendmode,macro) else call hom (texmapflags,macro) endif endif else if (ty < 79) then call hom (effecttype,macro) else if (ty < 80) then call hom (weathereffect,macro) else call hom (terraindeformation,macro) endif endif endif else if (ty < 84) then if (ty < 82) then call hom (fogstate,macro) else if (ty < 83) then call hom (version,macro) else call hom (itemtype,macro) endif endif else if (ty < 85) then call hom (texttag,macro) else if (ty < 86) then call hom (attacktype,macro) else call hom (damagetype,macro) endif endif endif endif else if (ty < 93) then if (ty < 90) then if (ty < 88) then call hom (weapontype,macro) else if (ty < 89) then call hom (soundtype,macro) else call hom (lightning,macro) endif endif else if (ty < 91) then call hom (pathingtype,macro) else if (ty < 92) then call hom (mousebuttontype,macro) else call hom (animtype,macro) endif endif endif else if (ty < 96) then if (ty < 94) then call hom (subanimtype,macro) else if (ty < 95) then call hom (image,macro) else call hom (ubersplat,macro) endif endif else if (ty < 98) then if (ty < 97) then call hom (real,macro) else call hom (integer,macro) endif else if (ty < 99) then call hom (string,macro) else call hom (boolean,macro) endif endif endif endif endif endif endif