List of script services and IDs
-------------------------------

DECLARE_SCRIPT_SERVICE(Null, 0xf2)

AI:
DECLARE_SCRIPT_SERVICE(AI, 0xe5)

physics:
DECLARE_SCRIPT_SERVICE(Physics, 0x141)

render:
DECLARE_SCRIPT_SERVICE(AnimTexture, 0x16a)

object:
DECLARE_SCRIPT_SERVICE(Property, 0xda)

script:
DECLARE_SCRIPT_SERVICE(Debug, 0xd7)
DECLARE_SCRIPT_SERVICE(Object, 0xdf)
DECLARE_SCRIPT_SERVICE(Link, 0xee)
DECLARE_SCRIPT_SERVICE(LinkTools, 0xef)
// DECLARE_SCRIPT_SERVICE(Rooms, 0xf0)
DECLARE_SCRIPT_SERVICE(Sound, 0xf1)
DECLARE_SCRIPT_SERVICE(ActReact, 0xF4)
DECLARE_SCRIPT_SERVICE(Door, 0xf6)
DECLARE_SCRIPT_SERVICE(Locked, 0xfb)
DECLARE_SCRIPT_SERVICE(Puppet, 0xfd)
DECLARE_SCRIPT_SERVICE(Damage,0xFE)
DECLARE_SCRIPT_SERVICE(Key, 0x10d)
DECLARE_SCRIPT_SERVICE(Camera,0x140)
// DECLARE_SCRIPT_SERVICE(Container, 0x146)
DECLARE_SCRIPT_SERVICE(Quest, 0x152)
DECLARE_SCRIPT_SERVICE(Light, 0x16c)
DECLARE_SCRIPT_SERVICE(Container,0x17d)
DECLARE_SCRIPT_SERVICE(Data,0x1a0)
DECLARE_SCRIPT_SERVICE(PGroup, 0x1f8)
DECLARE_SCRIPT_SERVICE(Networking, 0x225)
DECLARE_SCRIPT_SERVICE(CD, 0x226)
DECLARE_SCRIPT_SERVICE(Version, 0x228) // NEW
DECLARE_SCRIPT_SERVICE(Engine, 0x229) // NEW

dark:
DECLARE_SCRIPT_SERVICE(Weapon, 0x10e)
DECLARE_SCRIPT_SERVICE(PickLock,0x111)
DECLARE_SCRIPT_SERVICE(Bow, 0x115)
DECLARE_SCRIPT_SERVICE(DrkInv,0x150)
DECLARE_SCRIPT_SERVICE(DrkPowerups, 0x153)
DECLARE_SCRIPT_SERVICE(PlayerLimbs, 0x15d)
DECLARE_SCRIPT_SERVICE(DarkUI,0x19f)
DECLARE_SCRIPT_SERVICE(DarkGame,0x1b4)
DECLARE_SCRIPT_SERVICE(DarkOverlay, 0x22b) // NEW

shock:
DECLARE_SCRIPT_SERVICE(ShockGame, 0x108)
DECLARE_SCRIPT_SERVICE(ShockPsi, 0x1d7)
DECLARE_SCRIPT_SERVICE(ShockObj, 0x1d9)
DECLARE_SCRIPT_SERVICE(ShockWeapon, 0x213)
DECLARE_SCRIPT_SERVICE(ShockAI, 0x21b)
DECLARE_SCRIPT_SERVICE(ShockOverlay, 0x22a) // NEW

deepc:
DECLARE_SCRIPT_SERVICE(DPCGame, 0x108)
DECLARE_SCRIPT_SERVICE(DarkGame,0x1b4)
DECLARE_SCRIPT_SERVICE(DPCWeapon, 0x213)
DECLARE_SCRIPT_SERVICE(DPCAI, 0x21b)



#define DECLARE_SCRIPT_SERVICE(name, number) \
    GUID IID_##name = { \
        ((((ulong)(number) & 0xff) << 24) | (((ulong)(number) & 0xff00) << 16) | ((ulong)(number) & 0xffff)), \
        0x7a80+(number), 0x11cf+(number), \
        { 0x83, 0x48, 0x00, 0xaa, 0x00, 0xa8, 0x2b, 0x51 } \
    }
