//SOC definition for all useful objects.
//Not about masturbation.

freeslot("MT_THOKKERSPAWN", "SPR_PALM", "MT_PALM", "S_PALM", "SPR_LAMR", "MT_LAMRA", "S_LAMRA", "MT_LAMRB", "S_LAMRB", "MT_DESERTTREE1", "S_DESERTTREE1", "SPR_DTRE")

// Thokker ball spawnpoint dummy mobj (exists solely to avoid an UNKNA0 sprite appearing in-map)
mobjinfo[MT_THOKKERSPAWN] = {
		doomednum = 321,
        spawnstate = S_NULL,
        spawnhealth = 1,
        radius = FRACUNIT,
        height = FRACUNIT,
		flags = MF_NOTHINK|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOSECTOR
}

-- This is to prevent hideous breakage.
addHook("MobjCollide", do return false end, MT_THOKKERSPAWN)
addHook("ShouldDamage", do return false end, MT_THOKKERSPAWN)
addHook("MobjDeath", do return false end, MT_THOKKERSPAWN)

// Palm tree
mobjinfo[MT_PALM] = {
		doomednum = 614,
        spawnstate = S_PALM,
        spawnhealth = 1,
        radius = 24*FRACUNIT,
        height = 28*FRACUNIT,
		flags = MF_NOGRAVITY|MF_SOLID|MF_NOTHINK
}

states[S_PALM] = {
        sprite = SPR_PALM,
        frame = 0,
        tics = -1
}

addHook("MobjSpawn", function(mo)
		mo.scale = 3*FRACUNIT/2
		mo.flags2 = $1|MF2_STANDONME
		mo.z = mo.z + 208*FRACUNIT
end, MT_PALM)

// Lamp A
mobjinfo[MT_LAMRA] = {
        doomednum = 618,
        spawnstate = S_LAMRA,
        spawnhealth = 1,
        radius = FRACUNIT,
        height = FRACUNIT,
        flags = MF_SPAWNCEILING|MF_NOGRAVITY|MF_SCENERY
}

states[S_LAMRA] = {
        sprite = SPR_LAMR,
        frame = 0,
        tics = -1
}

// Lamp B
mobjinfo[MT_LAMRB] = {
        doomednum = 619,
        spawnstate = S_LAMRB,
        spawnhealth = 1,
        radius = FRACUNIT,
        height = FRACUNIT,
        flags = MF_SPAWNCEILING|MF_NOGRAVITY|MF_SCENERY
}

states[S_LAMRB] = {
        sprite = SPR_LAMR,
        frame = 1,
        tics = -1
}

// Desert tree 1
mobjinfo[MT_DESERTTREE1] = {
        doomednum = 3602,
        spawnstate = S_DESERTTREE1,
        spawnhealth = 1,
        radius = FRACUNIT,
        height = FRACUNIT,
        flags = MF_NOCLIPTHING|MF_SCENERY
}

states[S_DESERTTREE1] = {
        sprite = SPR_DTRE,
        frame = 1,
        tics = -1
}