#	Various shape information for Black Gate.
#
#	February 6, 2006
#

%%section version
:7
%%endsection

%%section explosions
#	Format
#		:shapenum/spritenum/sfxnum
#	If a shape is not in the list below, it will use the 'default'
#	explosion (spritenum 5) with no sound effect (sfxnum -1).
#   You can leave sfxnum out, in which case there will be no SFX.
#
#	 Delayed blast
#
:399/13/65

#	 Death Vortex
#
:639/8/63

#	 Burst Arrow
#
:554/19/7

#	 Explosion
#
:78/4/8

#	 Delayed Blast
#
:621/4/9

#	 Cannon
#
:702/4/9

#	 Powder Keg
#
:704/4/9

#	 Starburst
#
:565/18/7

#	 Swordstrike
#
:287/23/65

#	 Fire Bolt
#
:856/5/65
%%endsection

%%section shape_sfx
#	Format
#		:shapenum/sfxnum/chance/range/rand/extra
#	Only the first two parameters are required.
#	chance is the % chance of playing the sfx at any given moment.
#	Values of chance not in the [1-100] interval are treated as 100.
#	range is used to specify a sequence of different sfx used by the
#	shape: Exult will play sfx ranging from sfxnum to sfxnum + range - 1.
#	rand is a flag controlling how range is used: if rand is 1, Exult
#	will randomly play one sfx in the range; if rand is 0, Exult will
#	play them sequentially, wrapping back to the first sfx.
#	extra is basicall for the grandfather clock. It is a SFX that will
#	play every game hour a number of times equal to hour % 12 (or
#	twelve times for midnight).
#
#	Surf (49)
:612/49
:613/49
:632/49
:736/49
:737/49
:751/49
:808/49
:834/49
:875/49
:907/49
:911/49
:918/49
:1012/49
:1020/49
:1022/49

#	Bubbles (54 to 58)
#
:334/54/100/5/1
:335/54/100/5/1
#	Doesn't seem to play sounds
#:780/54/100/5/1

#	Slimes (54 to 58)
#
:529/54/100/5/1

#	Fountains
#
:893/48

#	Moongates
#
:157/77
:776/77
:777/77
:779/77

#	Ethereal monster
#
:230/79

#	Sphere generator
#
:234/80
:235/80
:236/80

#	Tetrahedron generator
#
:242/81
:243/81
:244/81

#	Cube generator
#
:238/82
:239/82
:240/82

#	Black gate
#
:305/78

#	Vortex cube
#
:786/79

#	Grandfather clock
#
:252/17/100/2/0/19
:695/17/100/2/0/19

#	Cavern
#
:389/103/5
:391/103/5

#	Bee
#
:494/113

#	Magic weapons
#
:547/104
:548/104
:559/104
:562/104

#	Flaming weapons -- sounds awful, so it is disabled
#
#:551/20/50/3/1
#:553/20/50/3/1
#:630/20/50/3/1

#	Mechanism
#
:685/114

#	Mill Stone
#
:711/26

#	Well of Souls
#
:748/52

#	Orrery
#
:755/114
:767/114

#	Energy Field
#
:768/11

#	Smokebomb
#
:769/52

#	The Vortex Cube
#
:786/79

#	Water
#
:794/50

#	Campfire -- sounds awful, so it is disabled
#
#:825/20/50/3/1

#	Fire Field -- sounds awful, so it is disabled
#
#:895/20/50/3/1

#	Poison/Sleep Field
#
:900/52
:902/52

#	Water Wheel
#
:934/59
:941/59
:942/59
:951/59

#	Prisms
#
:968/81
:981/81
:1010/11
%%endsection

%%section animation
#	The "default" animation starts at frame 0, goes through all
#	frames and returns to frame 0 again. This list is only for
#	animations which are NOT like that.
#
#	Format
#
#	Time Synchronized Loop
#		:shapenum/0/frame_count/frame_delay/sfx_delay
#	Hourly Loop (e.g., Sundials)
#		:shapenum/1
#	Nonlooping (e.g., Energy fields)
#		:shapenum/2/frame_count/frame_delay/sfx_delay
#	Looping
#		:shapenum/3/frame_count/frame_delay/sfx_delay/freeze_first/recycle
#	Random Frames
#		:shapenum/4/frame_count/frame_delay/sfx_delay
#
#	frame_count is the number of frames in each animation cycle; that
#	is, the shape will be divided into sets of frame_count frames which
#	animate independently from each other. If this field is less than zero,
#	Exult will set it equal to the number of frames of the shape.
#
#	frame_delay is an additional frame delay; time between frames
#	is multiplied by frame_delay. MUST be positive.
#
#	sfx_delay indicates the delay (in frames) before the sfx
#	is played again. If it is zero or one, the sfx will be played
#	continuously; if it is negative, it will be played only synchronized
#	with the animation (this means frame 0 or 1; see freeze_first).
#	On all other cases, the sfx will be played every sfx_delay frames.
#
#	freeze_first is the % chance of advancing the first frame of the loop;
#	this means that if freeze_first is zero, the animation will stop at the
#	first frame. Converselly, if freeze_first is 100, it will always advance.
#
#	recycle is the number of frames at the end to repeat after reaching
#	the last frame of the loop; for example, recycle 6 means repeat the last
#	6 frames of the loop. recycle 0 means repeat all frames.
#
#	Since BG needs no data patches, this section is empty in this data file.
%%endsection

%%section usecode_events
#	List of which items receive usecode events when readied/unreadied.
#
#	Format
#		:shapenum/event
#
#	'event' is nonzero to receive usecode events, zero otherwise.
#
#	Quest items
#
#		Ring of invibility
:296/1

#		Ring of protection
:297/1

#		Ring of regeneration
:298/1

#		Lit light source
:338/1

#		Lit torch
:701/1
%%endsection

%%section mountain_tops
#	Indicates if the object (which MUST be a building type) is a mountain top.
#
#	Format
#		:shapenum/val
#
#	If 'val' is zero, it is not a mountain top. If it is 1, the shape is a normal
#	mountain top. If 'val' is 2, the shape is a snow mountain top. It is treated
#	as being zero in all other cases.
#
:180/1
:182/1
:183/1
:324/1
:969/1
:983/1
%%endsection

%%section effective_hps
#	Effective HPs for objects which otherwise don't have them
#	(e.g., doors, powder keg). If the object does not have
#	HPs, they default to being indestructable; the list below
#	is only for those which are *not* indestructable.
#
#	Format
#		:shapenum/frame/quality/hps
#
#	If frame is -1, this entry will be used for all frames.
#	Likewise, if quality is -1, the quality will be ignored.
#	If the object does not have a quality, it will also be
#	ignored (and treated as -1).
#	If hps are zero, the object will be indestructable.
#
#		Locked chest.
#
:522/-1/0/4
:522/-1/255/4

#		Vertical Door - 270.
#
:270/0/0/6
:270/1/0/6
:270/2/0/6
:270/8/0/6
:270/9/0/6
:270/10/0/6
:270/16/0/6
:270/17/0/6
:270/18/0/6

#		Horizontal Door - 376.
#
:376/0/0/6
:376/1/0/6
:376/2/0/6
:376/8/0/6
:376/9/0/6
:376/10/0/6
:376/16/0/6
:376/17/0/6
:376/18/0/6

#		Vertical Door - 432.
#
:432/0/0/6
:432/1/0/6
:432/2/0/6
:432/4/0/6
:432/5/0/6
:432/6/0/6

#		Horizontal Door - 433.
#
:433/0/0/6
:433/1/0/6
:433/2/0/6
:433/4/0/6
:433/5/0/6
:433/6/0/6

#		Powder keg
#
:704/-1/0/4
%%endsection

%%section lightweight_object
#	Indicates which objects are lightweight -- that is, which objects
#	weight one-tenth of what their shape data would otherwise indicate.
#	In the originals, this was for coins and reagents.
#	Indicates which objects are lightweight -- that is, which objects
#	weight one-tenth of what their shape data would otherwise indicate.
#	In the originals, this was for coins and reagents.
#
#	Format
#		:shapenum/light
#
#	'light' is nonzero for very light objects, zero otherwise.
:644/1
:842/1
%%endsection

%%section monster_food
#	Which frame is to be used for food if a monster specifies it as equpment.
#
#	Format
#		:shapenum/food_frame
#
#	food_frame: Frame to be used for food carried by monsters. If this is -1,
#	a random frame will be used. Monsters not listed have a -1 by default.
#
#
#		Chicken.
#
:498/10

#		Cow - beef.
#
:500/9

#		Deer - venison.
#
:502/14

#		Fish.
#
:509/12

#		Rabbit - same as cow?
#
:811/9

#		Sheep - mutton.
#
:970/8

#		Horse - ribs.
#
:727/23

#		Boar - pork.
#
:329/11
%%endsection

%%section actor_flags
#	Lots of monster/actor data which was hardcoded in the originals.
#
#	Format
#		:shapenum/cold_immune/dont_eat/teleports/summons/turn_invis/armageddon_safe/quake_walk/goblin
#
#	The fields are flags which are true if nonzero, false otherwise.
#	The default for actors not on the list is false.
#	cold_immune: nonzero if actor is immune to cold, zero otherwise.
#	dont_eat: nonzero if actor does not need food, zero otherwise.
#	teleports: nonzero if actor can teleport, zero otherwise.
#	summons: nonzero if actor can summon allies, zero otherwise.
#	turn_invis: nonzero if actor can become invisible, zero otherwise.
#	armageddon_safe: nonzero if actor susrives armageddon, zero otherwise.
#	quake_walk: nonzero if actor causes earthquake when walking, zero otherwise.
#	goblin: nonzero if goblin, zero otherwise
#
#
#		Mages
#
:154/0/0/1/1/1/0/0/0
:445/0/0/1/1/1/0/0/0
:446/0/0/1/1/1/0/0/0

#		Ghosts
#
:299/0/0/0/1/1/0/0/0
:317/0/0/0/1/1/0/0/0

#		Liches
#
:354/0/0/1/1/1/0/0/0
:519/0/0/1/1/1/0/0/0

#		Dragon
#
:504/0/0/0/0/1/0/0/0

#		Gazer
#
:511/0/0/0/0/1/0/0/0

#		Kissme
#
:382/0/0/0/1/0/0/0/0

#		Wisp
#
:534/0/0/0/1/0/0/0/0

#		Batlin
#
:403/0/0/0/0/0/1/0/0
:482/0/0/0/0/0/1/0/0

#		Lord British
:466/0/0/0/0/0/1/0/0

#		Cyclops
#
:380/0/0/0/0/0/0/1/0
:501/0/0/0/0/0/0/1/0
%%endsection

%%section warmth_data
#	How much protection from cold is given by a given piece of clothing.
#
#	Format
#		:shapenum/frame/warmth
#
#	If frame is -1, this entry will be used for all unlisted frames.
#	The default warmth is zero.
#
#		Helms.
#
:383/-1/5
:539/-1/5
:541/-1/5
:542/-1/5
:1004/-1/10

#		Boots.
#
:587/0/85
:587/1/65
:588/-1/80

#		Torso.
#
:569/-1/20
:570/-1/-8
:571/-1/-5
:573/-1/-10
:666/-1/5
:836/-1/5

#		Gloves.
#
579:/-1/7
580:/-1/-5

#		Legs.
#
:353/-1/-5
:574/-1/10
:575/-1/-5
:576/-1/-5
:677/-1/4
:686/-1/5
%%endsection

%%section quantity_frames
#	Whether shapes have quantity-dependent frames (e.g., coins, arrows).
#	Weapons ignore this property. Objects with ammo data start from frame 24;
#	other objects start from frame zero. Default is to NOT have quantity frames.
#
#	Format
#		:shapenum/quantfr
#
#	If quantfr is nonzero, the shape has quantity frames.
#
#		Bolts.
#
:417/1
:723/1
:948/1

#		Arrows.
#
:554/1
:556/1
:558/1
:560/1
:568/1
:722/1

#		Musket ammo.
#
:581/1

#		Lockpicks.
#
:627/1

#		Money.
#
:644/1
%%endsection

%%section locked_containers
#	Whether a container is locked and can't be opened or added to.
#
#	Format
#		:shapenum/locked
#
#	locked is nonzero if the container is locked, zero otherwise.
#
#		Locked/sealed containers.
#
:522/1
:798/1
%%endsection

%%section content_rules
#	What shapes a give container will accept.
#
#	Format
#		:shapenum/shnum/accept
#
#	shnum is the shape number which is being added to the container or < 0
#	for any shape (default rule).
#
#	accept is nonzero if the container accepts the shape, zero otherwise.
#
%%endsection

%%section volatile_explosive
#	List of which items which blow up readily (such as powder keg in the originals).
#	Exult expects the object to be a 'quality' object with effective hps that make
#	it indestructible for quality 1 but destructible for quality 0.
#
#	Format
#		:shapenum/explosive
#
#	'explosive' is nonzero if the shape blows up easily, zero otherwise.
:704/1
%%endsection

%%section framenames
#
#	THIS SECTION SHOULD ***NOT*** BE EDITED MANUALLY!!!!!
#
#	Format:
#		:shapenum/frnum/qual/-255
#		:shapenum/frnum/qual/-1
#		:shapenum/frnum/qual/0/msgid
#		:shapenum/frnum/qual/type/msgid/defmsg
#
#	frnum is the frame for which the entry apllies, or < 0 for any frame.
#
#	qual is the quality for which the entry apllies, or < 0 for any quality.
#
#	If type is -255, use default shape name instead. If type is -1, display
#	no name at all. If type is 0, display msgid and that is it.
#
#	If type is 1 or 2, the name will be prefixed (type 1) or suffixed (type 2)
#	by the message indicated by extramsg.
#
#	If type is 3 or 4, the name will be prefixed (type 3) or suffixed (type 4)
#	by the corresponding NPC name. The corresponding NPC must have NPC # > 0,
#	not be unused and (for dead bodies) be met, or defmsg will be used instead.
#	For dead bodies, the corresponding NPC is the NPC to which it will become
#	when resurrected; for all others, this is the object's quality (hence, it
#	is limited to 255 NPCs and the object MUST have a quality).
#
#	msgid and defmsg are the name index in misc_names section of TEXT.FLX
#	or of TEXTMSG.TXT; for SI without SS, this is actually the corresponding
#	SS index. If defmsg is -1, the default name will be empty; if it is -255,
#	Exult will use the default shape name.
#
#	Food items.
#
:377/0/-1/0/11
:377/1/-1/0/12
:377/2/-1/0/13
:377/3/-1/0/14
:377/4/-1/0/15
:377/5/-1/0/16
:377/6/-1/0/17
:377/7/-1/0/18
:377/8/-1/0/19
:377/9/-1/0/20
:377/10/-1/0/21
:377/11/-1/0/22
:377/12/-1/0/23
:377/13/-1/0/24
:377/14/-1/0/25
:377/15/-1/0/26
:377/16/-1/0/27
:377/17/-1/0/28
:377/18/-1/0/29
:377/19/-1/0/30
:377/20/-1/0/31
:377/21/-1/0/32
:377/22/-1/0/33
:377/23/-1/0/34
:377/24/-1/0/35
:377/25/-1/0/36
:377/26/-1/0/37
:377/27/-1/0/38
:377/28/-1/0/39
:377/29/-1/0/40
:377/30/-1/0/41
:377/31/-1/0/42

#	Sextants.
#
:650/0/-1/0/44
:650/1/-1/0/43

#	Desk items.
#
:675/0/-1/0/45
:675/1/-1/0/46
:675/2/-1/0/47
:675/3/-1/0/48
:675/4/-1/0/49
:675/5/-1/0/50
:675/6/-1/0/51
:675/7/-1/0/52
:675/8/-1/0/53
:675/9/-1/0/54
:675/10/-1/0/55
:675/11/-1/0/56
:675/12/-1/0/57
:675/13/-1/0/58
:675/14/-1/0/59
:675/15/-1/0/60
:675/16/-1/0/61
:675/17/-1/0/62
:675/18/-1/0/63
:675/19/-1/0/64
:675/20/-1/0/65

#	Reagents.
#
:842/0/-1/0/0
:842/1/-1/0/1
:842/2/-1/0/2
:842/3/-1/0/3
:842/4/-1/0/4
:842/5/-1/0/5
:842/6/-1/0/6
:842/7/-1/0/7

#	Blood.
#
:912/0/-1/-255
:912/1/-1/-255
:912/2/-1/-255
:912/3/-1/-255
:912/-1/-1/-1

#	Amulets.
#
:955/0/-1/0/8
:955/1/-1/0/9
:955/2/-1/0/10
%%endsection

%%section altready
#
#	Alternate spot where an object can be readied.
#
#	Format:
#		:shapenum/spot1/spot2
#
#	spot1, spot2: Alternate spots where the item can go.
#	-1 means no alternate spot; spot1 should not be -1 unless spot2 also is.
#	They can take one of the following values:
#		head = 0
#		backpack = 1
#		belt = 2
#		lhand = 3
#		lfinger = 4
#		legs = 5
#		feet = 6
#		rfinger = 7
#		rhand = 8
#		torso = 9
#		amulet = 10
#		quiver = 11
#		back2h_spot = 12		2 handed weapons, bedroll, bodies
#		back_shield = 13		Shield behind backpack
#		earrings = 14
#		cloak = 15
#		gloves = 16				Gloves, gauntlets
#		ucont = 17				Usecode Container
#		both_hands = 18			2 handed weapons, uses up both hands
#		lrgloves = 19			Heavy gloves, uses both fingers and gloves spot
#		neck = 20				Fills cloak, amulet slots
#		scabbard = 21			Fills belt, back2h_spot and back_shield spots
#
#	Bodies.
#
:400/3/8
:402/3/8
:414/3/8

#	Torch.
#
:595/8/2
:701/8/2

#	SHIELDS
#
:543/8/21
:545/8/21
:572/8/21
:578/8/21
:609/8/21
:663/8/21

#	WEAPONS 1 H
#
:555/8/21
:592/8/21


#	WEAPONS 2H
#
:548/21/-1
:553/21/-1
:557/21/-1
:562/21/-1
:589/21/-1
:600/21/-1
:601/21/-1
:602/21/-1
:603/21/-1
:618/21/-1
:620/21/-1
:624/21/-1
:625/21/-1
:626/21/-1
:662/21/-1
:707/21/-1
:885/21/-1
:597/21/-1
:606/21/-1
:278/21/-1
:598/2/-1
:647/2/-1

#	Bed roll.
#
:583/21/-1

#	CLOAKS
#
:285/20/-1

#	Kidney Belt
#
:584/2/-1

#	Bag (Belt)
#
:802/2/-1

#	Diaper
:822/5/-1

%%endsection

%%section barge_type
#
#	The type of a barge piece.
#
#	Format:
#		:shapenum/type
#
#	type: The type of the barge piece. Can take one of the following values:
#		barge_generic = 0
#		barge_raft = 1
#		barge_seat = 2
#		barge_sails = 3
#		barge_wheel = 4
#		barge_draftanimal = 5
#		barge_turtle = 6
#
#	Cart parts.
#
:774/4
:796/5

#	Seat.
#
:292/2

#	Sails.
#
:251/3
%%endsection

%%section frame_powers
#
#	Additional frame-dependent flags granted by gear.
#
#	Format:
#		:shapenum/frame/quality/poison/charm/sleep/paralysis/curse/wpnpowers/deathmagic/death/cold/starvation/swamp/usecode/reagents
#
#	frame: The frame that grants the flag or -1 for all frames.
#	quality: The quality that grants the flag or -1 for all qualities.
#	Other fields: nonzero to grant the flag, zero otherwise.
#	usecode: Special case; any container with this flag set for the
#	frame/qualities in question will call usecode instead of
#	showing a gump when double-clicked.
#	reagents: Gives effectivelly infinite reagents.
#
#	Swamp boots.
#
:588/-1/-1/0/0/0/0/0/0/0/0/0/0/1/0
%%endsection

%%section is_jawbone
#	If the container is the SI jawbone.
#
#	Format
#		:shapenum/flag
#
#	flag: If nonzero, the object is a jawbone.
#
#
%%endsection

%%section is_mirror
#	If the object is a mirror.
#
#	Format
#		:shapenum/flag
#
#	flag: If nonzero, the object is a mirror.
#
#
:268/1
:848/1
%%endsection

%%section on_fire
#	If the object is on fire, and can't be placed inside
#	a container.
#
#	Format
#		:shapenum/flag
#
#	flag: If nonzero, the object is on fire.
#
#

:179/1
:198/1
:338/1
:435/1
:440/1
:442/1
:526/1
:534/1
:701/1
:739/1
:825/1
:895/1
:1053/1
:1079/1
%%endsection

%%section extradimensional_storage
#	If the container has unlimited internal space.
#
#	Format
#		:shapenum/flag
#
#	flag: If nonzero, the container has unlimited internal space.
#
#
%%endsection

%%section field_type
#	What kind of field this is.
#
#	Format
#		:shapenum/type
#
#	type: Can be one of the following values:
#		fire field = 0
#		sleep field = 1
#		poison field = 2
#		caltrops = 3
#		campfire = 4
#
#	Fire field
#
:895/0

#	Sleep field
#
:902/1

#	Poison field
#
:900/2

#	Caltrops
#
:756/3

#	Campfire
:825/4
%%endsection

%%section frame_usecode
#
#	Frame- and quality-dependent usecode. This is used only for books in standard BG/SI,
#	and probably shouldn't be needed for new games because Exult supports 32-bit usecode.
#
#	Format:
#		:shapenum/frame/quality/type/funid
#
#	frame: The frame that grants the flag or -1 for all frames.
#	quality: The quality that grants the flag or -1 for all qualities.
#	type: Nonzero if specifying a function name, zero if specifying a number.
#
#	Books.
#
:642/-1/100/0/1592
:642/-1/101/0/1592
:642/-1/102/0/1592
:642/-1/103/0/1592
:642/-1/104/0/1592
:642/-1/105/0/1592
:642/-1/106/0/1592
:642/-1/107/0/1592
:642/-1/108/0/1592
:642/-1/109/0/1592
:642/-1/110/0/1592
:642/-1/111/0/1592
:642/-1/112/0/1592
:642/-1/113/0/1592
:642/-1/114/0/1592
:642/-1/115/0/1592
:642/-1/116/0/1592
:642/-1/117/0/1592
:642/-1/118/0/1592
:642/-1/119/0/1592
:642/-1/120/0/1592
:642/-1/121/0/1592
:642/-1/122/0/1592
:642/-1/123/0/1592
:642/-1/124/0/1592
:642/-1/125/0/1592
:642/-1/126/0/1592
:642/-1/127/0/1592
:642/-1/128/0/1592
:642/-1/129/0/1592
:642/-1/130/0/1592
:642/-1/131/0/1592
:642/-1/132/0/1592
:642/-1/133/0/1592
:642/-1/134/0/1592
:642/-1/135/0/1592
:642/-1/136/0/1592
:642/-1/137/0/1592
:642/-1/138/0/1592
:642/-1/139/0/1592
:642/-1/140/0/1592
:642/-1/141/0/1592
:642/-1/142/0/1592
:642/-1/143/0/1592
:642/-1/144/0/1592
:642/-1/145/0/1592
:642/-1/146/0/1592
:642/-1/147/0/1592
:642/-1/148/0/1592
:642/-1/149/0/1592
:642/-1/150/0/1592
:642/-1/151/0/1592
:642/-1/152/0/1592
:642/-1/153/0/1592
:642/-1/154/0/1592
:642/-1/155/0/1592
:642/-1/156/0/1592
:642/-1/157/0/1592
:642/-1/158/0/1592
:642/-1/159/0/1592
:642/-1/160/0/1592
:642/-1/161/0/1592
:642/-1/162/0/1592
:642/-1/163/0/1592
:642/-1/164/0/1592
:642/-1/165/0/1592
:642/-1/166/0/1592
:642/-1/167/0/1592
:642/-1/168/0/1592
:642/-1/169/0/1592
:642/-1/170/0/1592
:642/-1/171/0/1592
:642/-1/172/0/1592
:642/-1/173/0/1592
:642/-1/174/0/1592
:642/-1/175/0/1592
:642/-1/176/0/1592
:642/-1/177/0/1592
:642/-1/178/0/1592
:642/-1/179/0/1592
%%endsection
